CC150上面讲解的很清楚
一快一慢赛跑的两个指针,一个每次移动两步,一个每次移动一步。假如他们相遇,那么一定存在环。怎样检测环所在位置 看Linked List Cycle2
while里面的判断条件不只是fast不是null,也要判断fast.next不是null,因为fast每次要移动两个
public class Solution {
public boolean hasCycle(ListNode head) {
ListNode fast = head;
ListNode slow = head;
while ( fast != null && fast.next!=null ){
fast = fast.next.next;
slow = slow.next;
if ( fast == slow)
return true;
}
return false;
}
}

本文深入解析了使用快慢指针法检测链表中循环节点的位置,详细解释了算法背后的逻辑和实现过程,通过实例代码演示如何在链表中找到循环起点。
295

被折叠的 条评论
为什么被折叠?



