题目描述
给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。
代码
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
*/
public class Solution {
public ListNode EntryNodeOfLoop(ListNode pHead)
{
ListNode fast = pHead;
ListNode slow = pHead;
while(fast != null && fast.next != null)
{
fast = fast.next.next;
slow = slow.next;
if(fast == slow)
{
ListNode p = pHead;
ListNode q = slow;
while(p != q)
{
p = p.next;
q = q.next;
}
return q;
}
}
return null;
}
}

本文介绍了一种解决链表中寻找环入口节点问题的高效算法。通过快慢指针首次相遇后,重新从头节点出发,当两指针再次相遇时即找到环的入口节点。此方法适用于所有包含环的链表结构。
1万+

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



