about summary refs log tree commit diff
path: root/scratch/facebook/reverse-linked-list.py
diff options
context:
space:
mode:
Diffstat (limited to 'scratch/facebook/reverse-linked-list.py')
-rw-r--r--scratch/facebook/reverse-linked-list.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/scratch/facebook/reverse-linked-list.py b/scratch/facebook/reverse-linked-list.py
new file mode 100644
index 000000000000..820726733f9d
--- /dev/null
+++ b/scratch/facebook/reverse-linked-list.py
@@ -0,0 +1,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!")