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 个节点。