@@ -5,10 +5,9 @@ def __init__(self):
55
66 def push_head (self , element ):
77 node = Node (element )
8- if self .head and self . tail :
8+ if self .head :
99 node .next = self .head
10- self .head .previous = node
11- self .head = node
10+ self .head .previous = self .head = node
1211 elif not self .head and not self .tail :
1312 self .head = node
1413 self .tail = node
@@ -18,29 +17,27 @@ def pop_tail(self):
1817 node = self .tail
1918 if self .tail is not self .head :
2019 self .tail = node .previous
21- node .previous .next = None
22- node .previous = None
20+ node .previous .next = node .previous = None
2321 else :
2422 self .head = None
2523 self .tail = None
2624 return node .value
2725
2826 def remove (self , node ):
29- if self .head != node and self .tail != node :
30- node .previous .next = node .next
31- node .next .previous = node .previous
32- node .previous , node .next = None , None
33- elif self .head == node and self .tail != node :
34- node .next .previous = None
35- self .head = node .next
36- node .previous , node .next = None , None
37- elif self .head != node and self .tail == node :
38- node .previous .next = None
39- self .tail = node .previous
40- node .previous , node .next = None , None
41- elif self .head == node and self .tail == node :
42- self .head = None
43- self .tail = None
27+ if self .head == node :
28+ if self .tail == node :
29+ self .head = self .tail = None
30+ else :
31+ self .head = node .next
32+ node .next .previous = node .previous = node .next = None
33+ else :
34+ if self .tail == node :
35+ self .tail = node .previous
36+ node .previous .next = node .previous = node .next = None
37+ else :
38+ node .previous .next = node .next
39+ node .next .previous = node .previous
40+ node .previous = node .next = None
4441
4542
4643class Node :
0 commit comments