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 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 ) -> Node :
13+ new_node = Node (value )
14+
15+ if self .head is None :
16+ self .head = new_node
17+ self .tail = new_node
18+ else :
19+ new_node .next = self .head
20+ self .head .previous = new_node
21+ self .head = new_node
22+
23+ return new_node
24+
25+ def remove (self , node : Node ) -> None :
26+ if node is None :
27+ return
28+
29+ if node == self .head :
30+ self .head = node .next
31+
32+ if node == self .tail :
33+ self .tail = node .previous
34+
35+ if node .previous is not None :
36+ node .previous .next = node .next
37+
38+ if node .next is not None :
39+ node .next .previous = node .previous
40+
41+ node .next = None
42+ node .previous = None
43+
44+ def pop_tail (self ):
45+ if self .tail is None :
46+ return None
47+
48+ last_node = self .tail
49+ value = last_node .value
50+
51+ self .remove (last_node )
52+
53+ return value
54+
You can’t perform that action at this time.
0 commit comments