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){ return null; } ListNode slow=check(pHead); if(slow==null){ return null; } ListNode fast=pHead; while(slow!=fast){ slow=slow.next; fast=fast.next; } return slow; } private static ListNode check(ListNode pHead){ ListNode fast=pHead; ListNode slow=pHead; while(fast.next!=null&&fast.next.next!=null){ fast=fast.next.next; slow=slow.next; if(fast==slow){ return slow; } } return null; } }