Search⌘ K
AI Features

Linked List Cycle

Explore the fast and slow pointers method to identify cycles in linked lists. Learn to return true if a cycle exists and false if not by analyzing node connections. This lesson helps you efficiently detect cycles to solve common linked list problems in coding interviews.

Statement

Given the head of a linked list, determine whether the list contains a cycle. A cycle exists if a node in the list can be revisited by continuously following the next pointers. Return TRUE if a cycle is present; otherwise, return FALSE.

Constraints:

Let n be the number of nodes in a linked list.

  • 00\leq n 500\leq500
  • 105-10^5 \leq Node.value 105\leq 10^5

Examples

Understand the problem

Let’s take a moment to make sure you’ve correctly understood the problem. The quiz below helps you check if you’re solving the correct problem:

Linked List Cycle

1.

What is the output if the following linked list is given as an input?

image

A.

TRUE

B.

FALSE


1 / 3

Figure it out!

We have a game for you to play. Rearrange the logical building blocks to develop a clearer understanding of how to solve this problem.

Sequence - Vertical
Drag and drop the cards to rearrange them in the correct sequence.

1
2
3
4

Try it yourself

Implement your solution in the following coding playground.

JavaScript
usercode > Solution.js
// The first input of the test case is an array of values representing a linked list.
// The second input is the index where the tail connects to form a cycle (or −1 if there's no cycle).
// This index is used only to construct the linked list and is not passed to the function.
// Definition for a Linked List node
// class ListNode {
// constructor(val = 0, next = null) {
// this.val = val;
// this.next = next;
// }
// }
import {ListNode} from './ds_v1/LinkedList.js';
function detectCycle(head){
// Replace this placeholder return statement with your code
return false;
}
export {
detectCycle
};
Linked List Cycle