思路:
先找到链表快慢指针相遇节点,(相遇节点参照链接)然后让其中一个指针从链表头开始,同时遍历,它两相遇即为入口节点。
public ListNode detectCycle(){
ListNode fast=this.head;
ListNode slow=this.head;
while(fast!=null&&fast.next!=null){
slow=slow.next;
fast=fast.next.next;
if(slow==fast){
fast=this.head;
while(fast!=slow){
fast=fast.next;
slow=slow.next;
}
return slow;
}
}
return null;
}