about summary refs log tree commit diff
path: root/scratch/facebook/reverse-linked-list.py
blob: 820726733f9de17393d1137ca6651dc8d2c12a6d (plain) (blame)
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
from linked_list import Node

def reverse(node):
    prev, curr, next = None, node, node.next

    while curr:
        curr.next = prev
        prev = curr
        curr = next
        next = curr.next if curr else None
    return prev

one = Node(1)
two = Node(2)
three = Node(3)
one.next = two
two.next = three

print(one)
result = reverse(one)
print(result)
assert all([result == three,
            three.next == two,
            two.next == one])
print("Success!")