Given a linked list, determine if it has a cycle in it.
Follow up:
Can you solve it without using extra space?
public class LinkedListCycle
{
//節點數據結構
static class ListNode
{
int val;
ListNode next;
ListNode(int x) {
val = x;
next = null;
}
}
public static boolean detectCycle(ListNode head)
{
if(null == head)
{
return null;
}
//快慢指針
ListNode _slow = head;
ListNode _fast = head;
while(null != _fast.next && null != _fast.next.next)
{
_slow = _slow.next;
_fast = _fast.next.next;
//快慢指針相遇,說明有環
if(_slow == _fast)
{
return true;
}
}
return false;
}
}