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;
}
}