目录

LeetCode-环形链表II为什么双指针第二次会在环的入口相遇

目录

LeetCode 环形链表II:为什么双指针第二次会在环的入口相遇?

快慢指针

为什么相遇后让快指针回到起点,再让快指针和慢指针都一步一步地走,它们就会在环的入口相遇? https://i-blog.csdnimg.cn/img_convert/0be686dd23c5b5bc2cd216c735923f25.png https://i-blog.csdnimg.cn/img_convert/d36749127c8347e7b4497b7195f61310.png 复杂度

  • 时间复杂度: O(n)
  • 空间复杂度: O(1) public ListNode detectCycle(ListNode head) { ListNode slow = head, fast =head; ListNode result = null; while (fast != null && fast.next != null) { slow = slow.next; fast = fast.next.next; if (fast == slow) { break; } } fast = head; while (slow != null && slow.next != null) { if (fast == slow){ result = fast; break; } slow = slow.next; fast = fast.next; } return result; }