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