forked from adnanaziz/EPIJudge
-
Notifications
You must be signed in to change notification settings - Fork 0
/
delete_node_from_list.py
33 lines (24 loc) · 996 Bytes
/
delete_node_from_list.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import functools
from list_node import ListNode
from test_framework import generic_test
from test_framework.test_utils import enable_executor_hook
# Assumes node_to_delete is not tail.
def deletion_from_list(node_to_delete: ListNode) -> None:
# TODO - you fill in here.
return
@enable_executor_hook
def deletion_from_list_wrapper(executor, head, node_to_delete_idx):
node_to_delete = head
if node_to_delete is None:
raise RuntimeError('List is empty')
for _ in range(node_to_delete_idx):
if node_to_delete.next is None:
raise RuntimeError('Can\'t delete last node')
node_to_delete = node_to_delete.next
executor.run(functools.partial(deletion_from_list, node_to_delete))
return head
if __name__ == '__main__':
exit(
generic_test.generic_test_main('delete_node_from_list.py',
'delete_node_from_list.tsv',
deletion_from_list_wrapper))