Learn
Technical Interview Problems in Python: Linked Lists
Detect Cycle in a Linked List

As we saw with the merge point problem, more than one node can reference another node. These references can create a cycle in the linked list where the traversal will loop back on itself.

``````#    -> b -> c
#  /      \   \
# a         d <-

# 'd' node's next points to 'b' node``````

Write a function that detects whether a cycle exists in a linked list. A cycle exists if traversing the linked list visits the same node more than once.

A cycle does not mean repeated values. Avoid this pitfall in your implementation by comparing the `Node` instances themselves, not their values!

``````a = Node('a')
other_a = Node('a')

a.val == other_a.val
# True
a == other_a
# False``````

To recap:

• write a function: `has_cycle()`.
• `has_cycle()` takes an instance of `LinkedList` as the argument.
• return a Boolean which indicates whether a cycle exists.

### Instructions

1.

Solve this problem and pass the tests. If you need help, check out the hint!