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