解决思路
快慢指针
定义快慢指针,一个走一步,一个走两步,如果快的可以追上慢的,则有环
如果快的到达了末尾都没追上慢的,则不存在环
public class Solution {
public boolean hasCycle(ListNode head) {
if(head==null||head.next==null)
return false;
ListNode slow = head;
ListNode fast = head.next;
while(slow!=fast){
if(fast==null||fast.next==null)
return false;
slow = slow.next;
fast = fast.next.next;
}
return true;
}
}