Description

Given head, the head of a linked list, determine if the linked list has a cycle in it. There is a cycle in a linked list if there is some node in the list that can be reached again by continuously following the next pointer. Return true if there is a cycle, otherwise return false.

Examples

Input:head = [3,2,0,-4], pos = 1
Output:true
Explanation:

There is a cycle where the tail connects to the 1st node.

Input:head = [1,2], pos = 0
Output:true
Explanation:

There is a cycle where the tail connects to the 0th node.

Input:head = [1], pos = -1
Output:false
Explanation:

There is no cycle in the linked list.

Constraints

  • The number of nodes in the list is in the range [0, 10⁴]
  • -10⁵ ≤ Node.val ≤ 10⁵
  • pos is -1 or a valid index in the linked list.

Ready to solve this problem?

Practice solo or challenge other developers in a real-time coding battle!