[路飞]_leetcode-面试题 02.02-返回倒数第 k 个节点

223 阅读1分钟

「这是我参与11月更文挑战的第4天,活动详情查看:2021最后一次更文挑战

[题目地址] [B站地址]

实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。

注意: 本题相对原题稍作改动

示例:

输入: 1->2->3->4->5 和 k = 2
输出: 4

说明:

给定的 k 保证是有效的。

本题解题思路如下:

  1. 定义两个指针 precur,初始都指向 head
  2. cur 指针向后走 k
  3. precur指针一起向后走,直到 cur 指针为空,此时 pre 指针指向的就是倒数第 k 个节点 代码如下:
var kthToLast = function(head, k) {
    let pre = head,cur = head
    while(k){
        cur = cur.next;
        k--;
    }
    while(cur){
        cur = cur.next;
        pre = pre.next;
    }
    return pre.val;
};

至此我们就完成了 leetcode-面试题 02.02-返回倒数第 k 个节点

如有任何问题或建议,欢迎留言讨论!