JAVA超级简单的解法
每遍历一个指针就把该指针指向自己,最后遍历到当检测到下一个指针为自己时判断为有环,输出为该指针,否则判断为无环
要特别注意边界条件
/* 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; } if(pHead.next==pHead){ return pHead; } ListNode p=pHead; ListNode q=pHead; while(p!=null&&p.next!=p&&q.next!=q){ p=p.next; q.next=q; q=p; } if(p==null){ return null; } else{ return p; } } }