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 , data ):
3+ self .data = data
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 , data ):
13+ new_head_node = Node (data )
14+ if self .head is not None :
15+ new_head_node .next = self .head
16+ self .head .previous = new_head_node
17+
18+ self .head = new_head_node
19+ if self .tail is None :
20+ self .tail = new_head_node
21+
22+ return new_head_node
23+
24+
25+
26+ def pop_tail (self ):
27+ if self .tail is not None :
28+ tail_node = self .tail
29+ previous = self .tail .previous
30+ self .tail = previous
31+ if self .tail is not None :
32+ self .tail .next = None
33+ else :
34+ self .head = None
35+ else :
36+ raise IndexError ("Unable to remove from empty linked list" )
37+
38+ return tail_node .data
39+
40+
41+
42+ def remove (self , node ):
43+ if node .previous is not None :
44+ node .previous .next = node .next
45+ else :
46+ self .head = node .next
47+
48+ if node .next is not None :
49+ node .next .previous = node .previous
50+ else :
51+ self .tail = node .previous
52+
53+
54+
55+
56+
57+
58+
59+
60+
61+
62+
63+
64+
You can’t perform that action at this time.
0 commit comments