LeetCode:地址
题目要求
实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。
注意: 本题相对原题稍作改动
示例 1:
输入: 1->2->3->4->5 和 k = 2
输出: 4
思路
- 快指针先走
k步 - 再一起走,直到快指针走到头
- 此时的慢指针指的就是倒数第
k个
代码
const kthToLast = (head, k) => {
let [fast, slow] = [head, head];
while (k--) {
// 快指针先走k步
fast = fast.next;
}
while (fast) {
// 再一起走,直到快指针走到头
fast = fast.next;
slow = slow.next;
}
// 此时的慢指针指的就是倒数第k个
return slow.val;
};