@@ -20,44 +20,39 @@ def __init__(self):
2020 self .head = None
2121 self .tail = None
2222 self .tracker_number = 0
23- self .our_list = []
24-
2523
2624 def push_head (self , item_to_insert ):
27- # assign so gets updated
28- id_for_this_particular_item = self .tracker_number
29- # //wrap item to unsert in {}
30- wrapped_item = Node (id_for_this_particular_item , item_to_insert )
25+ # //wrap item to insert in {}
26+ wrapped_item = Node (None , item_to_insert )
3127
32- if self .head is None :
28+ if not self .head :
3329 self .head = self .tail = wrapped_item
3430 else :
3531 wrapped_item .next = self .head
3632 self .head .prev = wrapped_item
3733 self .head = wrapped_item
3834
39- self .our_list .insert (0 , wrapped_item )
35+ # self.our_list.insert(0, wrapped_item)
4036 self .tracker_number += 1
41- return id_for_this_particular_item
37+ return wrapped_item
4238
4339 def remove (self , id_for_this_particular_item ):
44- for node in self .our_list :
45- if node .tracker == id_for_this_particular_item :
46- if node .prev :
47- node .prev .next = node .next
48- else :
49- self .head = node .next
40+ node_to_remove = id_for_this_particular_item
41+
42+ if node_to_remove .prev :
43+ node_to_remove .prev .next = node_to_remove .next
44+ else :
45+ self .head = node_to_remove .next
46+
47+ if node_to_remove .next :
48+ node_to_remove .next .prev = node_to_remove .prev
49+ else :
50+ self .tail = node_to_remove .prev
5051
51- if node .next :
52- node .next .prev = node .prev
53- else :
54- self .tail = node .prev
52+ return node_to_remove .inserted_item_key
5553
56- self .our_list .remove (node )
57- return node .inserted_item_key
58-
5954 def pop_tail (self ):
60- if not self .our_list :
55+ if not self .tail :
6156 return None
6257
6358 old_tail = self .tail
@@ -67,7 +62,5 @@ def pop_tail(self):
6762 else :
6863 self .head = self .tail = None
6964
70- if len (self .our_list ) > 0 :
71- self .our_list .pop ()
72- return old_tail .inserted_item_key
65+ return old_tail .inserted_item_key
7366
0 commit comments