Skip to content

Commit b02b1a7

Browse files
authored
Refactor Node class references and removing
Renamed for test, and updated references.
1 parent 84c810f commit b02b1a7

1 file changed

Lines changed: 12 additions & 14 deletions

File tree

Sprint-2/implement_linked_list/linked_list.py

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
class Node:
77
def __init__(self, value):
88
self.value = value
9-
self.prev = None
9+
self.previous = None
1010
self.next = None
1111

1212

@@ -24,7 +24,7 @@ def push_head(self, value):
2424
self.tail = node
2525
else:
2626
node.next = self.head
27-
self.head.prev = node
27+
self.head.previous = node
2828
self.head = node
2929

3030
return node # returns the node so we can remove it later
@@ -34,26 +34,24 @@ def pop_tail(self):
3434
if self.tail is None:
3535
raise Exception("List is empty")
3636

37-
value = self.tail.value # value to return
37+
removed = self.tail
3838

39-
if self.head == self.tail: # if only one element
40-
self.head = None
41-
self.tail = None
42-
else:
43-
self.tail = self.tail.prev # move tail back
44-
self.tail.next = None # remove old tail connection
39+
self.remove(removed)
4540

46-
return value
41+
return removed.value
4742

4843
# removes a specific node
4944
def remove(self, node):
5045

51-
if node.prev is None: # if removing head
46+
if node.previous is None: # if removing head
5247
self.head = node.next
5348
else:
54-
node.prev.next = node.next # connect previous to next
49+
node.previous.next = node.next # connect previous to next
5550

5651
if node.next is None: # if removing tail
57-
self.tail = node.prev
52+
self.tail = node.previous
5853
else:
59-
node.next.prev = node.prev # connect next to previous
54+
node.next.previous = node.previous # connect next to previous
55+
# unplugging node
56+
node.next = None
57+
node.previous = None

0 commit comments

Comments
 (0)