/* 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 ; } }