Update 22. 链表中倒数第 K 个结点.md

补充题目描述,并在解题思路中补充两次遍历的常规解法说明。
This commit is contained in:
CyC2018
2026-10-30 20:18:00 +08:00
parent 4072d32ab3
commit 5741803e8d
@@ -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 个节点。
<div align="center"> <img src="pics/offer22-kth-from-end.png" width="670px"/> </div><br>