We’re preparing your current view and syncing the latest data.
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 in the linked list. Otherwise, return false.
The input is the head of a singly-linked list.
Return true if the linked list contains a cycle; otherwise, return false.
The number of nodes in the list is in the range [0, 10^4]. -10^5 <= Node.val <= 10^5
Example 1
Input
head = [3,2,0,-4], pos = 1
Output
true
Explanation
There is a cycle in the linked list, where the tail connects to the second node.
Example 2
Input
head = [1,2], pos = 0
Output
true
Explanation
There is a cycle in the linked list, where the tail connects to the first node.
Example 3
Input
head = [1], pos = -1
Output
false
Explanation
There is no cycle in the linked list.