mirror of
https://github.com/CyC2018/Interview-Notebook.git
synced 2026-10-31 11:05:36 +00:00
Update 22. 链表中倒数第 K 个结点.md
补充题目描述,并在解题思路中补充两次遍历的常规解法说明。
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user