File tree Expand file tree Collapse file tree
Sprint-2/implement_linked_list Expand file tree Collapse file tree Original file line number Diff line number Diff line change 66class Node :
77 def __init__ (self , value ):
88 self .value = value
9- self .prev = None
9+ self .previous = None
1010 self .next = None
1111
1212
@@ -24,7 +24,7 @@ def push_head(self, value):
2424 self .tail = node
2525 else :
2626 node .next = self .head
27- self .head .prev = node
27+ self .head .previous = node
2828 self .head = node
2929
3030 return node # returns the node so we can remove it later
@@ -34,26 +34,24 @@ def pop_tail(self):
3434 if self .tail is None :
3535 raise Exception ("List is empty" )
3636
37- value = self .tail . value # value to return
37+ removed = self .tail
3838
39- if self .head == self .tail : # if only one element
40- self .head = None
41- self .tail = None
42- else :
43- self .tail = self .tail .prev # move tail back
44- self .tail .next = None # remove old tail connection
39+ self .remove (removed )
4540
46- return value
41+ return removed . value
4742
4843 # removes a specific node
4944 def remove (self , node ):
5045
51- if node .prev is None : # if removing head
46+ if node .previous is None : # if removing head
5247 self .head = node .next
5348 else :
54- node .prev .next = node .next # connect previous to next
49+ node .previous .next = node .next # connect previous to next
5550
5651 if node .next is None : # if removing tail
57- self .tail = node .prev
52+ self .tail = node .previous
5853 else :
59- node .next .prev = node .prev # connect next to previous
54+ node .next .previous = node .previous # connect next to previous
55+ # unplugging node
56+ node .next = None
57+ node .previous = None
You can’t perform that action at this time.
0 commit comments