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 , value ):
3+ self .value = value
4+ self .previous = None
5+ self .next = None
6+
7+
18class LinkedList :
29 def __init__ (self ):
310 self .head = None
@@ -34,7 +41,7 @@ def remove(self, node):
3441 else :
3542 # head == node, tail != node
3643 self .head = node .next
37- node . next . previous = node .previous = node .next = None
44+ self . head .previous = node .next = None
3845 else :
3946 if self .tail == node :
4047 # head != node, tail == node
@@ -45,10 +52,3 @@ def remove(self, node):
4552 node .previous .next = node .next
4653 node .next .previous = node .previous
4754 node .previous = node .next = None
48-
49-
50- class Node :
51- def __init__ (self , value ):
52- self .value = value
53- self .previous = None
54- self .next = None
Original file line number Diff line number Diff line change 22
33from linked_list import LinkedList
44
5+
56class LinkedListTest (unittest .TestCase ):
67 def test_pushes_then_pops (self ):
78 l = LinkedList ()
@@ -34,6 +35,17 @@ def test_remove_tail(self):
3435 self .assertIsNone (b .next )
3536 self .assertIsNone (b .previous )
3637
38+ def test_remove_last (self ):
39+ l = LinkedList ()
40+ a = l .push_head ("a" )
41+ b = l .push_head ("b" )
42+ l .remove (a )
43+ l .remove (b )
44+ self .assertIsNone (a .next )
45+ self .assertIsNone (b .previous )
46+ self .assertIsNone (l .head )
47+ self .assertIsNone (l .tail )
48+
3749
3850if __name__ == "__main__" :
3951 unittest .main ()
You can’t perform that action at this time.
0 commit comments