From a0c3fbb7e53acd52864ae0c3e4c025518b7be245 Mon Sep 17 00:00:00 2001 From: youngyangyang04 <826123027@qq.com> Date: Thu, 25 Jun 2020 23:22:39 +0800 Subject: [PATCH] Update --- README.md | 1 + pics/142环形链表1.png | Bin 0 -> 10150 bytes pics/142环形链表2.png | Bin 0 -> 37322 bytes problems/0142.环形链表II.md | 82 +++++++++++++++++++++++++++----- 4 files changed, 72 insertions(+), 11 deletions(-) create mode 100644 pics/142环形链表1.png create mode 100644 pics/142环形链表2.png diff --git a/README.md b/README.md index 140304e8..a680aafd 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,7 @@ LeetCode 最强题解(持续更新中): |[0053.最大子序和](https://github.com/youngyangyang04/leetcode/blob/master/problems/0053.最大子序和.md) |数组 |**暴力** **贪心** 动态规划 分治| |[0059.螺旋矩阵II](https://github.com/youngyangyang04/leetcode/blob/master/problems/0059.螺旋矩阵II.md) |数组 |**模拟**| |[0083.删除排序链表中的重复元素](https://github.com/youngyangyang04/leetcode/blob/master/problems/0083.删除排序链表中的重复元素.md) |链表 |**模拟**| +|[0142.环形链表II.md](https://github.com/youngyangyang04/leetcode/blob/master/problems/0142.环形链表II.md) |链表 |**模拟**| |[0203.移除链表元素](https://github.com/youngyangyang04/leetcode/blob/master/problems/0203.移除链表元素.md) |链表 |**模拟** **虚拟头结点**| |[0206.翻转链表](https://github.com/youngyangyang04/leetcode/blob/master/problems/0206.翻转链表.md) |链表 | **模拟** **递归**| |[0209.长度最小的子数组](https://github.com/youngyangyang04/leetcode/blob/master/problems/0209.长度最小的子数组.md) |数组 | **暴力** **滑动窗口**| diff --git a/pics/142环形链表1.png b/pics/142环形链表1.png new file mode 100644 index 0000000000000000000000000000000000000000..7814be45b0a5a33be45d10650c2a1110c5171ae9 GIT binary patch literal 10150 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 YlV%}#5gUiU@5qV0krFBv`0(j}04%Kuk^lez literal 0 HcmV?d00001 diff --git a/pics/142环形链表2.png b/pics/142环形链表2.png new file mode 100644 index 0000000000000000000000000000000000000000..86294647d84b3cab90a3f43b461333238aac6405 GIT binary patch literal 37322 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 literal 0 HcmV?d00001 diff --git a/problems/0142.环形链表II.md b/problems/0142.环形链表II.md index 69c41eec..0e7c7a29 100644 --- a/problems/0142.环形链表II.md +++ b/problems/0142.环形链表II.md @@ -3,14 +3,72 @@ https://leetcode-cn.com/problems/linked-list-cycle-ii/ ## 思路 -快慢指针为什么一定会相遇 +这道题目,不仅考察对链表的操作,而且还需要一些数学运算。 + +**首先如何判断链表有环呢** + +可以使用快慢指针法, 分别定义 fast 和 slow指针,从头结点出发,fast指针每次移动两个节点,slow指针每次移动一个节点,如果 fast 和 slow指针在途中相遇 ,说明这个链表有环。 + +为什么fast 走两个节点,slow走一个节点,有环的话,一定会在环内相遇呢,而不是永远的错开呢 + +首先第一点: **fast指针一定先进入环中,如果fast 指针和slow指针相遇的话,一定是在环中相遇,这是毋庸置疑的。** + +那么我们来看一下,**为什么fast指针和slow指针一定会相遇呢** + +可以画一个环,然后让 fast指针在任意一个节点开始追赶slow指针。 + +会发现最终都是这种情况, 如下图: + + + +fast和slow各自再走一步, fast和slow就相遇了 + +这是因为fast是走两步,slow是走一步,**其实相对于slow来说,fast是一个节点一个节点的靠近slow的**,所以fast一定可以和slow重合。 +此时我们已经可以判断链表是否有环了,那么接下来要找这个环的入口了 + + +假设从头结点到环形入口节点 的节点数为x。 +环形入口节点到 fast指针与slow指针相遇节点 节点数为y。 +从相遇节点 再到环形入口节点节点数为 z。 如图所示: + + +那么相遇时: +slow指针走过的节点数为: x + y +fast指针走过的节点数: x + y + n (y + z),n为fast指针在环内走了n圈才遇到slow指针, (y+z)为 一圈内节点的个数 + + +因为fast指针是一步走两个节点,slow指针一步走一个节点, 所以 fast指针走过的节点数 = slow指针走过的节点数 * 2 + +`(x + y) * 2 = x + y + n (y + z)` + +两边消掉一个(x+y): `x + y = n (y + z) ` + +因为我们要找环形的入口,那么要求的是x,因为x表示 头结点到 环形入口节点的的距离。 + +所以我们要求x ,将x单独放在左面:`x = n (y + z) - y` + +在从n(y+z)中提出一个 (y+z)来,整理公式之后为如下公式:`x = (n - 1) (y + z) + z ` 注意这里n一定是大于等于1的,因为 fast指针至少要多走一圈才能相遇slow指针 + +这个公式说明什么呢, + +先拿n为1的情况来举例,意味着fast指针在环形里转了一圈之后,就遇到了 slow指针了。 + +当 n为1的时候,公式就化解为 `x = z` + + +这就意味着,从头结点出发一个指针,从相遇节点 也出发一个指针,这两个指针每次只走一个节点, 那么当这两个指针相遇的时候就是 环形入口的节点 + + +也就是在相遇节点处,定义一个指针index1,在头结点处定一个指针index2。 + +让index1和index2同时移动,每次移动一个节点, 那么他们相遇的地方就是 环形入口的节点。 + +那么 n如果大于1是什么情况呢,就是fast指针在环形转n圈之后才遇到 slow指针。 + +其实这种情况和n为1的时候 效果是一样的,一样可以通过这个方法找到 环形的入口节点,只不过,index1 指针在环里 多转了(n-1)圈,然后再遇到index2,相遇点依然是环形的入口节点。 -1.第一次相遇,slow = nb -2.a+nb = 入口点 -3.slow再走a = 入口 = head走到入口 = a -4.由3得出,起始距离入口 = 第一次相遇位置 + a ## 代码 @@ -31,13 +89,15 @@ public: while(fast != NULL && fast->next != NULL) { slow = slow->next; fast = fast->next->next; - if (slow == fast) { // 快慢指针相遇,此时从head 和 相遇点,同时查找直至相遇 - slow = head; - while (slow != fast) { - fast = fast->next; - slow = slow->next; + // 快慢指针相遇,此时从head 和 相遇点,同时查找直至相遇 + if (slow == fast) { + ListNode* index1 = fast; + ListNode* index2 = head; + while (index1 != index2) { + index1 = index1->next; + index2 = index2->next; } - return fast; // 返回环的入口 + return index2; // 返回环的入口 } } return NULL;