Skip to content

Commit f3cc077

Browse files
committed
reverse list
1 parent 5acfd89 commit f3cc077

File tree

2 files changed

+47
-0
lines changed

2 files changed

+47
-0
lines changed

recursion/reverse-linked-list.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
class ListNode:
2+
def __init__(self, val: int = None, next = None):
3+
self.val = val
4+
self.next = next
5+
6+
7+
def reverse_linked_list(node: ListNode) -> ListNode:
8+
if node is None:
9+
return None
10+
elif node.next is None:
11+
return node
12+
else:
13+
next_node: ListNode = node.next
14+
node.next = None
15+
rest: ListNode = reverse_linked_list(next_node)
16+
next_node.next = node
17+
return rest
18+

recursion/reverse-list.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
nums: list = [1, 2, 3, 4, 5]
2+
3+
4+
def reverse_rec(elements: list):
5+
6+
def reverse_list_helper(values: list, start: int, end: int):
7+
if start < end:
8+
values[start], values[end] = values[end], values[start]
9+
reverse_list_helper(values, start + 1, end - 1)
10+
11+
reverse_list_helper(elements, 0, len(elements) - 1)
12+
13+
14+
print(nums)
15+
reverse_rec(nums)
16+
print(nums)
17+
18+
19+
def reverse_iterative(elements: list):
20+
start: int = 0
21+
end: int = len(elements) - 1
22+
while start < end:
23+
elements[start], elements[end] = elements[end], elements[start]
24+
start += 1
25+
end -= 1
26+
27+
28+
reverse_iterative(nums)
29+
print(nums)

0 commit comments

Comments
 (0)