Cycle Detection in a Singly Linked List

Determine if a given singly linked list of integers forms a cycle or not.

A cycle in a linked list occurs when a node's next points back to a previous node in the list. Thus, the list does not have a linear structure with a beginning and an end, but instead cycles through a loop of nodes.

Input:

The first line of each test case contains the elements of the singly linked list, separated by a single space and terminated by -1, where -1 indicates the end of the list and would never be a list element. 
The second line contains an integer position "pos" which denotes the position (0-indexed) in the linked list where the tail connects to a cycle, or -1 if there is no cycle.

Output:

The only line of output should be 'true' if the linked list contains a cycle, or 'false' if it does not. 
The function should not explicitly print the output, as it is handled automatically.

Example:

Input:
3 2 0 -4 -1
1
Output:
true
Explanation:
The linked list is: 3 -> 2 -> 0 -> -4, and position 1 indicates the tail connects to the second node, forming a cycle.

Constraints:

  • 0 ≤ N ≤ 106
  • -1 ≤ pos < N
  • -109 ≤ data ≤ 109 and data ≠ -1

Note:

Aim to solve this problem with O(N) time complexity and O(1) space complexity.
AnswerBot
13m

Detect if a singly linked list forms a cycle by checking if a node's next pointer points back to a previous node.

  • Use Floyd's Tortoise and Hare algorithm to detect a cycle in O(N) time complexity and O...read more

Help your peers!
Add answer anonymously...
Symphony Talent Software Developer Interview Questions
Stay ahead in your career. Get AmbitionBox app
qr-code
Helping over 1 Crore job seekers every month in choosing their right fit company
65 L+

Reviews

4 L+

Interviews

4 Cr+

Salaries

1 Cr+

Users/Month

Contribute to help millions

Made with ❤️ in India. Trademarks belong to their respective owners. All rights reserved © 2024 Info Edge (India) Ltd.

Follow us
  • Youtube
  • Instagram
  • LinkedIn
  • Facebook
  • Twitter