18. Linked List Cycle
easyAsked at AdyenDetect whether a linked list contains a cycle.
By Alex Chen, Founder, InterviewChamp.AI · Last verified
Problem
Given head, the head of a linked list, determine if the linked list has a cycle in it.
Constraints
0 <= list length <= 10^4-10^5 <= Node.val <= 10^5
Examples
Example 1
Input
head = [3,2,0,-4], pos = 1Output
trueExample 2
Input
head = [1], pos = -1Output
falseApproaches
1. Hash set visited
Track visited nodes in a set.
- Time
- O(n)
- Space
- O(n)
const seen = new Set();
let cur = head;
while (cur) {
if (seen.has(cur)) return true;
seen.add(cur);
cur = cur.next;
}
return false;Tradeoff:
2. Floyd tortoise-and-hare
Slow and fast pointers eventually meet inside a cycle.
- Time
- O(n)
- Space
- O(1)
function hasCycle(head) {
let slow = head, fast = head;
while (fast && fast.next) {
slow = slow.next;
fast = fast.next.next;
if (slow === fast) return true;
}
return false;
}Tradeoff:
Adyen-specific tips
Adyen reaches for Floyd's variant because their retry-routing graphs must detect loops without allocating per-node bookkeeping in hot payment paths.
Solve it now
Free. No sign-up. Python and JavaScript run instantly in your browser.
Practice these live with InterviewChamp.AI
Drill Linked List Cycle and other Adyen interview questions under real-loop conditions with instant feedback on your reasoning, complexity claims, and code.
Practice these live with InterviewChamp.AI →