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.
Be the first one to answer
Add answer anonymously...
TCS System Engineer 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