给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。
理解起来可能稍微有困难,可以参考https://www.cnblogs.com/snake-hand/p/3148328.html,解释的很详细。
public class Solution {
public ListNode EntryNodeOfLoop(ListNode pHead)
{
ListNode fast=pHead;
ListNode low=pHead;
while(fast!=null&&fast.next!=null){
fast=fast.next.next;
low=low.next;
if(fast==low)
break;
}
if(fast==null||fast.next==null)
return null;
low=pHead;
while(fast!=low){
fast=fast.next;
low=low.next;
}
return low;
}
}
本文提供了一种高效算法,用于查找链表中环的入口节点。通过快慢指针法,首先判断链表是否存在环,然后定位环的入口位置。此算法避免了额外的空间消耗,仅使用O(1)的空间复杂度。
172万+

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



