题解 | #输出单向链表中倒数第k个结点#

输出单向链表中倒数第k个结点

https://www.nowcoder.com/practice/54404a78aec1435a81150f15f899417d

快慢指针得到倒数第k个节点的值

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

// 构建节点类
class Node {
    constructor(value, next) {
        this.value = value;
        this.next = next;
    }
}

// 构建单向列表
const create = (arr) => {
    const head = new Node(arr.shift(), null);
    let p = head;
    while (arr[0] != null) {
        let node = new Node(arr.shift(), null);
        p.next = node;
        p = node;
    }
    return head;
};

void (async function () {
    while ((line = await readline())) {
        let n = parseInt(line);

        let arr = (await readline()).split(" ").map(Number);

        let k = Number(await readline());

        let head = create(arr);

        // 快慢指针
        let fast = head;
        let slow = head;
        for (let i = 0; i < k; i++) {
            fast = fast.next;
        }
        while (fast != null) {
            fast = fast.next;
            slow = slow.next;
        }
        console.log(slow.value);
    }
})();

全部评论

相关推荐

未知的命运:大佬这都找不到我还找啥啊
点赞 评论 收藏
分享
09-22 09:42
门头沟学院 Java
牛客37185681...:马德,我感觉这是我面过最恶心的公司,一面是两个女hr,说什么实习前几个月属于试用期,试用期过了才能转成正式实习生,我***笑了,问待遇就是不说,问能不能接受全栈,沙币公司
如果可以选,你最想去哪家...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务