Skip to content

Commit 98063e3

Browse files
committed
added test that pop last tail and added reset of pointers when removing last node
1 parent 9721c4c commit 98063e3

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

Sprint-2/implement_linked_list/linked_list.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,17 @@ def pop_tail(self):
3131
else:
3232
self.head = None
3333
self.tail = None
34+
node.previous = None
35+
node.next = None
3436
return node.value
3537

3638
def remove(self, node):
3739
if self.head == node:
3840
if self.tail == node:
3941
# head == node, tail == node
4042
self.head = self.tail = None
43+
node.previous = None
44+
node.next = None
4145
else:
4246
# head == node, tail != node
4347
self.head = node.next

Sprint-2/implement_linked_list/linked_list_test.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,21 @@ def test_remove_last(self):
4242
l.remove(a)
4343
l.remove(b)
4444
self.assertIsNone(a.next)
45+
self.assertIsNone(a.previous)
46+
self.assertIsNone(b.next)
47+
self.assertIsNone(b.previous)
48+
self.assertIsNone(l.head)
49+
self.assertIsNone(l.tail)
50+
51+
def test_pop_last_tail(self):
52+
l = LinkedList()
53+
a = l.push_head("a")
54+
b = l.push_head("b")
55+
c = l.push_head("c")
56+
l.remove(a)
57+
l.remove(c)
58+
l.pop_tail()
59+
self.assertIsNone(b.next)
4560
self.assertIsNone(b.previous)
4661
self.assertIsNone(l.head)
4762
self.assertIsNone(l.tail)

0 commit comments

Comments
 (0)