@@ -61,11 +61,9 @@ def get_node_at(self, index: int) -> Node:
61
61
if index < 0 or index >= self .size :
62
62
raise IndexError ('list index out of range' )
63
63
n = self .head
64
- i = 0
65
- while n is not None :
64
+ for i in range (self .size ):
66
65
if i == index :
67
66
return n
68
- i += 1
69
67
n = n .next
70
68
71
69
def __repr__ (self ):
@@ -96,7 +94,7 @@ def __eq__(self, other: object):
96
94
return a is None and b is None
97
95
98
96
99
- def delete_middle_node (ll : LinkedList , node : Node ) -> LinkedList :
97
+ def delete_middle_node (ll : LinkedList , node : Node ) -> None :
100
98
"""
101
99
delete_middle_node will delete a node from
102
100
a singly linked list. The node can be any
@@ -117,8 +115,9 @@ def delete_middle_node(ll: LinkedList, node: Node) -> LinkedList:
117
115
while n .next is not None :
118
116
if n .next is node :
119
117
n .next = n .next .next
118
+ return
120
119
n = n .next
121
- return ll
120
+ return
122
121
123
122
124
123
class TestDeleteMiddleNode (unittest .TestCase ):
@@ -144,8 +143,8 @@ def setUp(self):
144
143
145
144
def test_delete_middle_node (self ):
146
145
for ll , node_index , expected in self .test_cases :
147
- result = delete_middle_node (ll , ll .get_node_at (node_index ))
148
- self .assertEqual (result , expected , msg = (ll , node_index , expected ))
146
+ delete_middle_node (ll , ll .get_node_at (node_index ))
147
+ self .assertEqual (ll , expected , msg = (ll , node_index , expected ))
149
148
150
149
def test_delete_middle_node_value_error (self ):
151
150
ll = LinkedList (1 , 2 , 3 , 4 )
0 commit comments