使用两个指针,一个faster一次走两步,一个slower一次走一步,若有环路则faster与slower必能相遇
class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
next = null;
}
}
public class Solution {
public boolean hasCycle(ListNode head) {
ListNode faster = head;
ListNode slower = head;
while(faster != null && faster.next != null){
faster = faster.next.next;
slower = slower.next;
if(faster == slower)
return true;
}
return false;
}
}