about summary refs log tree commit diff
path: root/scratch/facebook/linked-list-cycles.py
blob: 56f54d497808130f92c720dcfb2e6ee8cdb0d065 (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
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!")