思路:快慢指针法,反正2个指针最终都会在环里变成追击,追到了就有环,具体的百度吧~~
while条件: 空链表和 单结点链表不可能有环
循环里 if判断条件为第一次追上
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;
}
}