diff options
Diffstat (limited to 'scratch/facebook/linked-list-cycles.py')
-rw-r--r-- | scratch/facebook/linked-list-cycles.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/scratch/facebook/linked-list-cycles.py b/scratch/facebook/linked-list-cycles.py new file mode 100644 index 000000000000..56f54d497808 --- /dev/null +++ b/scratch/facebook/linked-list-cycles.py @@ -0,0 +1,26 @@ +import random + +from linked_list import Node + +def contains_cycle(node): + one = node + two = node + while two.next and two.next.next: + one = one.next + two = two.next.next + if one == two: + return True + return False + +xs = Node(1, Node(2, Node(3))) +assert not contains_cycle(xs) +print("Success!") + +a = Node(1) +b = Node(2) +c = Node(3) +a.next = b +b.next = c +c.next = random.choice([a, b, c]) +assert contains_cycle(a) +print("Success!") |