Stealth Interview
  • Features
  • Pricing
  • Blog
  • Login
  • Sign up

How to Solve Detect Cycle in Linked List on LeetCode

Detect Cycle in Linked List is a classic interview question focusing on pointers and linked list manipulation.

Leetcode

Problem Statement

Given the head of a linked list, determine if the linked list has a cycle. Return true if there is a cycle in the linked list, otherwise return false.

Example:

Input: head = [3,2,0,-4], pos = 1 Output: true Explanation: The tail connects to the node at position 1 (cycle exists).

Why This Problem Matters for Interviews

  • Essential for mastering linked list problems
  • Introduces fast/slow pointers and cycle detection
  • Forms basis for advanced linked list algorithms

Approach to Detect Cycle in Linked List

Fast and Slow Pointers (Floyd's Algorithm)

Move two pointers at different speeds. If they ever meet, a cycle exists.

Time Complexity: O(n)
Space Complexity: O(1)

def hasCycle(head): slow = fast = head while fast and fast.next: slow = slow.next fast = fast.next.next if slow == fast: return True return False

Key Interview Talking Points

  • Set-based approach vs pointer-based approach
  • How the algorithm guarantees cycle detection
  • Edge cases: empty list, single node

Big O Complexity Recap

ApproachTime ComplexitySpace Complexity
Fast/Slow PointersO(n)O(1)

Pro Interview Tips

  • Draw pointer positions at each iteration
  • Explain why O(1) space is optimal
  • Follow-ups: find cycle entry point

Ace your next coding interview

We're here to help you ace your next coding interview.

Subscribe
Stealth Interview
© 2025 Stealth Interview ™All rights reserved.
Product
  • Blog
  • Pricing
Company
  • Terms of Service
  • Privacy Policy