经典做法,原理:加法交换律。
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
*/
public class Solution {
public ListNode EntryNodeOfLoop(ListNode pHead){
ListNode slow=pHead, fast=pHead;
while(fast!=null&&fast.next!=null){
slow=slow.next;
fast=fast.next.next;
if(slow==fast) break;
}
if(fast==null||fast.next==null) return null;
slow=pHead;
while(fast!=slow){
fast=fast.next;
slow=slow.next;
}
return fast;
}
}


京公网安备 11010502036488号