Skip to content
BASA DSA

Linked List Cycle

EasyLinked List

Return whether repeatedly following next from head eventually revisits a node. Input is {values,pos}; the last node points to zero-based pos, or null when pos is -1. Use constant auxiliary space.

Example 1

Argument 1: next pointers; tail returns to index 1.Argument 1: next pointers; tail returns to index 1. Vertices: node 0: 3, node 1: 5, node 2: 7. Edges: node 0 (3) → node 1 (5); node 1 (5) → node 2 (7); node 2 (7) → node 1 (5) (cycle).cycle357
Argument 1: next pointers; tail returns to index 1.

Input
head = {"values":[3,5,7],"pos":1}
Output
true

Explanation

The last node links back to index 1, creating 5->7->5.

Example 2

Argument 1: next pointers; tail returns to index 0.Argument 1: next pointers; tail returns to index 0. Vertices: node 0: 1. Edges: node 0 (1) → node 0 (1) (cycle).cycle1
Argument 1: next pointers; tail returns to index 0.

Input
head = {"values":[1],"pos":0}
Output
true

Explanation

The single node points to itself, so it forms a cycle.

Example 3

Argument 1: next pointers; tail points to null. No nodes or connections.
Input
head = {"values":[],"pos":-1}
Output
false

Explanation

An empty list cannot revisit a node.

Example 4

Argument 1: next pointers; tail points to null.Argument 1: next pointers; tail points to null. Vertices: node 0: 1, node 1: 2. Edges: node 0 (1) → node 1 (2).12
Argument 1: next pointers; tail points to null.

Input
head = {"values":[1,2],"pos":-1}
Output
false

Explanation

The last node ends at null, so the two-node list never revisits a node.

Constraints

  • 0 <= number of nodes <= 10000
  • pos is -1 or a valid index
  • pos is encoding metadata and is not a function argument

Function contracthasCycleArguments: cycleList
Loading draft…
SolutionRuns on your device
Loading draft…