方法一:
/*
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){
return null;
}
int num = 1;
ListNode p1=pHead, p2=pHead.next;
while(p1!=null && p2!=null){
if(p1==p2){
p1 = p1.next;
while(p1!=p2){
num++;
p1 = p1.next;
}
p1=p2=pHead;
while(num-- >0 && p1!=null){
p1 = p1.next;
}
while(p1!=p2){
p1 = p1.next;
p2 = p2.next;
}
return p1;
}
if(p1.next==null)
return null;
else
p1=p1.next.next;
p2 = p2.next;
}
return null;
}
}