题解 | #链表中环的入口结点#
链表中环的入口结点
https://www.nowcoder.com/practice/253d2c59ec3e4bc68da16833f79a38e4
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
*/
public class Solution {
public ListNode EntryNodeOfLoop(ListNode pHead) {
if(pHead == null || pHead.next == null){
return null;
}
ListNode slow = pHead, fast = pHead, ano = pHead;
while(fast != null && fast.next != null){
fast = fast.next.next;
slow = slow.next;
if(fast == slow){
//相遇,表示有环。这时候,慢的和ano每次走一步,相遇即环的入口
while(ano != slow){
slow = slow.next;
ano = ano.next;
}
return ano;
}
}
return null;
}
}
#学习##刷题##每日刷题#