File tree Expand file tree Collapse file tree 1 file changed +51
-0
lines changed
Sprint-2/implement_linked_list Expand file tree Collapse file tree 1 file changed +51
-0
lines changed Original file line number Diff line number Diff line change 1+ class Node :
2+ def __init__ (self , value ):
3+ self .value = value
4+ self .previous = None
5+ self .next = None
6+
7+ class LinkedList :
8+ def __init__ (self ):
9+ self .head = None
10+ self .tail = None
11+
12+ def push_head (self , value ):
13+ new_node = Node (value ) # <-- Node must exist
14+ if not self .head :
15+ self .head = self .tail = new_node
16+ else :
17+ new_node .next = self .head
18+ self .head .previous = new_node
19+ self .head = new_node
20+ return new_node
21+
22+ def pop_tail (self ):
23+ if not self .tail :
24+ return None
25+ value = self .tail .value
26+ if self .head == self .tail :
27+ self .head = self .tail = None
28+ else :
29+ self .tail = self .tail .previous
30+ self .tail .next = None
31+ return value
32+
33+ def remove (self , node ):
34+ if node is self .head :
35+ self .head = node .next
36+ if self .head :
37+ self .head .previous = None
38+
39+ if node is self .tail :
40+ self .tail = node .previous
41+ if self .tail :
42+ self .tail .next = None
43+
44+ if node .previous :
45+ node .previous .next = node .next
46+
47+ if node .next :
48+ node .next .previous = node .previous
49+
50+ node .previous = node .next = None
51+
You can’t perform that action at this time.
0 commit comments