判断是否有环的问题,一方面,不仅他本身是一个环,还有可能有子环。
所以要用快慢指针,让块指针先进入环,那么快慢指针迟早会在环中相遇
https://www.cnblogs.com/dancingrain/p/3405197.html给出一个
链接,这个博主给了很多相关问题详细分析。
/**
* Definition for singly-linked list.
* class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
public boolean hasCycle(ListNode head) {
ListNode slow=head;
ListNode fast=head;
while(fast!=null&&fast.next!=null){
slow=slow.next;
fast=fast.next.next;
if(slow==fast){
return true;
}
}
return false;
}
}