From abe8b5ab8bc8e5d3a1a27eda28b76a52d1ef0a20 Mon Sep 17 00:00:00 2001 From: CyC2018 <1029579233@qq.com> Date: Mon, 12 Mar 2018 15:09:38 +0800 Subject: [PATCH] auto commit --- notes/剑指 offer 题解.md | 30 +++++++++++------- pics/40d96c0d-156f-4eee-a183-2d597344f1cd.png | Bin 0 -> 14336 bytes pics/e7d7dc0d-fc22-4f95-8768-b8a216168792.jpg | Bin 0 -> 16384 bytes 3 files changed, 18 insertions(+), 12 deletions(-) create mode 100644 pics/40d96c0d-156f-4eee-a183-2d597344f1cd.png create mode 100644 pics/e7d7dc0d-fc22-4f95-8768-b8a216168792.jpg diff --git a/notes/剑指 offer 题解.md b/notes/剑指 offer 题解.md index 290fd3cd..a172c90f 100644 --- a/notes/剑指 offer 题解.md +++ b/notes/剑指 offer 题解.md @@ -25,7 +25,7 @@ * [19. 正则表达式匹配](#19-正则表达式匹配) * [20. 表示数值的字符串](#20-表示数值的字符串) * [21. 调整数组顺序使奇数位于偶数前面](#21-调整数组顺序使奇数位于偶数前面) - * [22. 链表中倒数第 k 个结点](#22-链表中倒数第-k-个结点) + * [22. 链表中倒数第 K 个结点](#22-链表中倒数第-k-个结点) * [23. 链表中环的入口结点](#23-链表中环的入口结点) * [24. 反转链表](#24-反转链表) * [25. 合并两个排序的链表](#25-合并两个排序的链表) @@ -763,20 +763,26 @@ public void reOrderArray(int[] array) { } ``` -## 22. 链表中倒数第 k 个结点 +## 22. 链表中倒数第 K 个结点 + +**解题思路** + +设链表的长度为 N。设两个指针 P1 和 P2,先让 P1 移动 K 个节点,则还有 N - K 个节点可以移动。此时让 P1 和 P2 同时移动,可以知道当 P1 移动到链表结尾时,P2 移动到 N - K 个节点处,该位置就是倒数第 K 个节点。 + +

```java public ListNode FindKthToTail(ListNode head, int k) { if (head == null) return null; - ListNode fast, slow; - fast = slow = head; - while (fast != null && k-- > 0) fast = fast.next; + ListNode P1, P2; + P1 = P2 = head; + while (P1 != null && k-- > 0) P1 = P1.next; if (k > 0) return null; - while (fast != null) { - fast = fast.next; - slow = slow.next; + while (P1 != null) { + P1 = P1.next; + P2 = P2.next; } - return slow; + return P2; } ``` @@ -784,11 +790,11 @@ public ListNode FindKthToTail(ListNode head, int k) { **解题思路** -使用双指针,一个指针 fast 每次走两步,一个指针 slow 每次都一步。因为存在环,所以两个指针必定相遇在环中的某个节点上。此时 fast 走的路径长度为 x+2y+z,slow 走的路径长度为 x+y,由于 fast 速度比 slow 快一倍,因此 x+2y+z=2(x+y),得到 x=z。 +使用双指针,一个指针 fast 每次移动两个节点,一个指针 slow 每次移动一个节点。因为存在环,所以两个指针必定相遇在环中的某个节点上。此时 fast 移动的节点数为 x+2y+z,slow 为 x+y,由于 fast 速度比 slow 快一倍,因此 x+2y+z=2(x+y),得到 x=z。 -在相遇点,slow 要到环的入口点还需要走 z 长度,如果让 fast 重新从头开始走,并且速度变为每次走一步,那么它走到环入口点还需要走 x 长度。在上面已经推导出 x=z,因此 fast 和 slow 将在环入口点相遇。 +在相遇点,slow 要到环的入口点还需要移动 z 个节点,如果让 fast 重新从头开始移动,并且速度变为每次移动一个节点,那么它到环入口点还需要移动 x 个节点。在上面已经推导出 x=z,因此 fast 和 slow 将在环入口点相遇。 -

+

```java public ListNode EntryNodeOfLoop(ListNode pHead) { diff --git a/pics/40d96c0d-156f-4eee-a183-2d597344f1cd.png b/pics/40d96c0d-156f-4eee-a183-2d597344f1cd.png new file mode 100644 index 0000000000000000000000000000000000000000..15f3819bb39697ce83811b3f5064682ed5a5439c GIT binary patch literal 14336 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