LeetCode-环形链表II为什么双指针第二次会在环的入口相遇
目录
LeetCode 环形链表II:为什么双指针第二次会在环的入口相遇?
快慢指针
为什么相遇后让快指针回到起点,再让快指针和慢指针都一步一步地走,它们就会在环的入口相遇?
![]()
复杂度
- 时间复杂度: 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; }