From 5741803e8d00e32155afb1bbf20dc7b0f4a51705 Mon Sep 17 00:00:00 2001 From: CyC2018 Date: Fri, 30 Oct 2026 20:18:00 +0800 Subject: [PATCH] =?UTF-8?q?Update=2022.=20=E9=93=BE=E8=A1=A8=E4=B8=AD?= =?UTF-8?q?=E5=80=92=E6=95=B0=E7=AC=AC=20K=20=E4=B8=AA=E7=BB=93=E7=82=B9.m?= =?UTF-8?q?d?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 补充题目描述,并在解题思路中补充两次遍历的常规解法说明。 --- notes/22. 链表中倒数第 K 个结点.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/notes/22. 链表中倒数第 K 个结点.md b/notes/22. 链表中倒数第 K 个结点.md index 25e8fc07..3d4d3240 100644 --- a/notes/22. 链表中倒数第 K 个结点.md +++ b/notes/22. 链表中倒数第 K 个结点.md @@ -2,8 +2,14 @@ [Leetcode](https://leetcode.cn/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof/) +## 题目描述 + +输入一个链表,输出该链表中倒数第 K 个结点,最后一个结点是倒数第 1 个。 + ## 解题思路 +最直接的做法是先遍历一次求出长度 N,再走 N - K 步,需要遍历两次。用两个指针可以只遍历一次。 + 设链表的长度为 N。设置两个指针 P1 和 P2,先让 P1 移动 K 个节点,则还有 N - K 个节点可以移动。此时让 P1 和 P2 同时移动,可以知道当 P1 移动到链表结尾的 null 时,P2 移动了 N - K 个节点,到达第 N - K + 1 个节点,该位置就是倒数第 K 个节点。