/* public class ListNode { public int val; public ListNode next; public ListNode (int x) { val = x; } }*/ class Solution { public ListNode EntryNodeOfLoop(ListNode pHead) { // write code here if(pHead==null) return null; ListNode slow=pHead; ListNode faster=pHead; while(faster!=null && faster.next!=null ) { faster=faster.next.next; slow=slow.next; if(faster==slow) break; } if(faster==null || faster.next==null) return null; while(pHead!=faster) { pHead=pHead.next; faster=faster.next; } return faster; } } 如果不借助hash,关键是环的计算