一、题目描述
题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
二、题解
对于本题,我们可以得到以下结论:
让一个指针从链表起始位置开始遍历链表,同时让一个指针从判环时相遇点的位置开始绕环运行,两个指针 都是每次均走一步,最终肯定会在入口点的位置相遇 。
证明:
三、代码
public class Solution {public ListNode detectCycle(ListNode head) {ListNode fast = head;ListNode slow = head;while (fast != null && fast.next !=null) {fast = fast.next.next;slow = slow.next;if(fast == slow) {break;}}if (fast == null||fast.next == null) {return null;}slow = head;while(slow!=fast) {slow = slow.next;fast = fast.next;}return slow;}
}