|
9 | 9 | # * `remove` takes a handle from `push_head`, |
10 | 10 | # and removes that element from the list. |
11 | 11 | class Node: |
12 | | - def __init__(self, tracker, inserted_item_key): |
13 | | - self.tracker = tracker |
14 | | - self.inserted_item_key = inserted_item_key |
| 12 | + def __init__(self, data): |
| 13 | + self.data = data |
15 | 14 | self.next = None |
16 | | - self.prev = None |
| 15 | + self.previous = None |
17 | 16 |
|
18 | 17 | class LinkedList: |
19 | 18 | def __init__(self): |
20 | 19 | self.head = None |
21 | 20 | self.tail=None |
22 | | - self.tracker_number = 0 |
23 | 21 |
|
24 | 22 | def push_head(self, item_to_insert): |
25 | 23 | # //wrap item to insert in {} |
26 | | - wrapped_item = Node(None, item_to_insert) |
| 24 | + wrapped_item = Node(item_to_insert) |
27 | 25 |
|
28 | 26 | if not self.head: |
29 | 27 | self.head = self.tail = wrapped_item |
30 | 28 | else: |
31 | 29 | wrapped_item.next = self.head |
32 | | - self.head.prev = wrapped_item |
| 30 | + self.head.previous = wrapped_item |
33 | 31 | self.head = wrapped_item |
34 | 32 |
|
35 | | - # self.our_list.insert(0, wrapped_item) |
36 | | - self.tracker_number +=1 |
37 | 33 | return wrapped_item |
38 | 34 |
|
39 | 35 | def remove(self, id_for_this_particular_item): |
40 | 36 | node_to_remove = id_for_this_particular_item |
41 | 37 |
|
42 | | - if node_to_remove.prev: |
43 | | - node_to_remove.prev.next = node_to_remove.next |
| 38 | + if node_to_remove.previous: |
| 39 | + node_to_remove.previous.next = node_to_remove.next |
44 | 40 | else: |
45 | 41 | self.head = node_to_remove.next |
46 | 42 |
|
47 | 43 | if node_to_remove.next: |
48 | | - node_to_remove.next.prev = node_to_remove.prev |
| 44 | + node_to_remove.next.previous = node_to_remove.previous |
49 | 45 | else: |
50 | | - self.tail = node_to_remove.prev |
| 46 | + self.tail = node_to_remove.previous |
51 | 47 |
|
52 | | - return node_to_remove.inserted_item_key |
| 48 | + #save data here |
| 49 | + saved_data = node_to_remove.data |
| 50 | + node_to_remove.next = node_to_remove.previous = None |
| 51 | + return saved_data |
53 | 52 |
|
54 | 53 | def pop_tail(self): |
55 | 54 | if not self.tail: |
|
0 commit comments