Skip to content

Commit d69d4f6

Browse files
committed
use for loop, return none, update test code
1 parent 7cc65ed commit d69d4f6

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

Python/chapter02/2.3 - Delete Middle Node/miguel_2.3_soln.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,9 @@ def get_node_at(self, index: int) -> Node:
6161
if index < 0 or index >= self.size:
6262
raise IndexError('list index out of range')
6363
n = self.head
64-
i = 0
65-
while n is not None:
64+
for i in range(self.size):
6665
if i == index:
6766
return n
68-
i += 1
6967
n = n.next
7068

7169
def __repr__(self):
@@ -96,7 +94,7 @@ def __eq__(self, other: object):
9694
return a is None and b is None
9795

9896

99-
def delete_middle_node(ll: LinkedList, node: Node) -> LinkedList:
97+
def delete_middle_node(ll: LinkedList, node: Node) -> None:
10098
"""
10199
delete_middle_node will delete a node from
102100
a singly linked list. The node can be any
@@ -117,8 +115,9 @@ def delete_middle_node(ll: LinkedList, node: Node) -> LinkedList:
117115
while n.next is not None:
118116
if n.next is node:
119117
n.next = n.next.next
118+
return
120119
n = n.next
121-
return ll
120+
return
122121

123122

124123
class TestDeleteMiddleNode(unittest.TestCase):
@@ -144,8 +143,8 @@ def setUp(self):
144143

145144
def test_delete_middle_node(self):
146145
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))
149148

150149
def test_delete_middle_node_value_error(self):
151150
ll = LinkedList(1, 2, 3, 4)

0 commit comments

Comments
 (0)