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

128 阅读1分钟

题目描述

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

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

示例:

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

给定的 k 保证是有效的。

来源:力扣(LeetCode) 链接:leetcode-cn.com/problems/kt… 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题解思路

倒数第k个数的值就是整数第length-k个数的值。

题解代码

 * Definition for singly-linked list.
 * function ListNode(val) {
 *     this.val = val;
 *     this.next = null;
 * }
 */
/**
 * @param {ListNode} head
 * @param {number} k
 * @return {number}
 */
var kthToLast = function(head, k) {
    let length = 0;
    let cur = head;
    //求链表长度
    while(cur){
        cur = cur.next;
        length++;
    }
    cur = head;
    //找出整数第length-k个数的值即为倒数第k个数的值
    for(let i = 0; i < length - k; i++){
        cur = cur.next;
    }
    return cur.val;
};