Problem
Given a linked list, determine if it has a cycle in it.
To represent a cycle in the given linked list, we use an integer pos which represents the position (0-indexed) in the linked list where tail connects to. If pos is -1, then there is no cycle in the linked list.
Example 1:
1 |
|
Example 2:
1 |
|
Example 3:
1 |
|
Follow up:
Can you solve it using O(1) (i.e. constant) memory?
Explanation
- Both fast and slow pointers points to the head.
- When fast pointer moves two steps, slow pointer move one step.
- If fast pointer hits null, then no cycle; else if slow pointer and fast pointer point to the same node, then there’s cycle.
Solution
1 |
|