/*
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 ;
}
ListNode fast = pHead ;
ListNode slow = pHead ;
do{
if(fast.next == null) {
return null ;
} else {
fast = fast.next.next ;
slow = slow.next ;
if(fast == null || slow == null) {
return null ;
}
}
} while(slow != fast) ;
slow = pHead ;
while(fast != slow) {
fast = fast.next ;
slow = slow.next ;
}
return slow ;
}
}