Linked Lists · Coding problem

Detect a Cycle in a Linked List

A free coding problem from the Singly Linked List Basics skill. Read it here, then solve it in the app in Java or Python.

  • Easy
  • Coding problem
  • Free
  • Java and Python

The problem

Given the head of a linked list, determine whether it contains a cycle - i.e. some node's next pointer eventually leads back to a node already visited, rather than to null.

Example

Input:  1 -> 2 -> 3 -> 4 -> (back to 2)
Output: true

Do it in O(1) extra space - don't use a HashSet to track visited nodes.

Constraints

  • 0 <= number of nodes <= 2 * 10^5
  • -10^5 <= node value <= 10^5

How it's graded

  • Run checks your code against the examples. Submit also runs a hidden suite in four groups - basic cases, edge cases, random inputs and performance tests at the size limit - and shows which groups pass, never the hidden inputs.
  • Stuck? Hints come in four steps, from a nudge to a code skeleton, each costing part of the points.
  • Once you pass, you see the approaches from brute force to optimal, and where your solution lands among them.

More problems in Singly Linked List Basics

Solve it Detect a Cycle in a Linked List free

No card needed. Lessons, practice questions and easy problems are free forever.

Free plan, no card · 7-day Pro trial · Cancel anytime