题目链接:https://leetcode.cn/problems/linked-list-cycle/
思路:判断链表是否有环经典解法-快慢指针。初始化指针fast和slow均指向链表头结点head,接下来fast每次前进两步,slow每次前进一步。然后接两句话:无环链表必有头,有环链表追得上。代码如下:
public class Solution {
public boolean hasCycle(ListNode head) {
if(head == null) return false;
ListNode fast = head;
ListNode slow = head;
//无环链表有终点,有环链表追得上
while(fast != null && fast.next != null) {
fast = fast.next.next;
slow = slow.next;
if(slow == fast) {
return true;
}
}
return false;
}
}
本文介绍了一种使用快慢指针的经典方法来检测链表中是否存在环。通过初始化两个指针,一个快指针每次移动两个节点,一个慢指针每次移动一个节点,如果链表中有环,则快指针最终会追上慢指针。
291

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



