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+
3+ def __init__ (self , value ):
4+ self .value = value
5+ self .next = None
6+ self .previous = None
7+
8+
9+ class LinkedList :
10+
11+ def __init__ (self ):
12+ self .head = None
13+ self .tail = None
14+
15+ def push_head (self , value ):
16+ new_node = Node (value )
17+
18+ if self .head is None :
19+ self .head = new_node
20+ self .tail = new_node
21+ else :
22+ new_node .next = self .head
23+ self .head .previous = new_node
24+ self .head = new_node
25+
26+ return new_node
27+
28+ def pop_tail (self ):
29+
30+ if self .tail is None :
31+ return None
32+
33+ value_to_return = self .tail .value
34+
35+ if self .head == self .tail :
36+ self .head = None
37+ self .tail = None
38+ else :
39+ self .tail = self .tail .previous
40+ self .tail .next = None
41+
42+ return value_to_return
43+
44+ def remove (self , node ):
45+
46+ if node == self .head :
47+ self .head = node .next
48+ if self .head :
49+ self .head .previous = None
50+ else :
51+ self .tail = None
52+
53+ elif node == self .tail :
54+ self .tail = node .previous
55+ if self .tail :
56+ self .tail .next = None
57+ else :
58+ self .head = None
59+
60+ else :
61+ node .previous .next = node .next
62+ node .next .previous = node .previous
You can’t perform that action at this time.
0 commit comments