Search⌘ K
AI Features

Linked List Cycle

Understand the method to detect cycles in a linked list by using fast and slow pointers. This lesson helps you identify if a linked list loops back on itself, enhancing your ability to solve cycle detection problems efficiently.

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.

Python
usercode > Solution.py
# 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:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
from ds_v1.LinkedList.LinkedList import ListNode
def detect_cycle(head):
# Replace this placeholder return statement with your code
return False
Linked List Cycle