题解 | #从单向链表中删除指定值的节点#

从单向链表中删除指定值的节点

https://www.nowcoder.com/practice/f96cd47e812842269058d483a11ced4f

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

void (async function () {
    // Write your code here
    let str;
    while ((line = await readline())) {
        str = line;
    }
    // 将输入以空格分割为数组
    let arrinput = str.split(" ");
    // 获取要删除的节点元素
    let x = arrinput[arrinput.length - 1];
    // 获取所有的节点值数组arrnum,slice(),截取的内容前包括,后不包括,即[a,b)
    let arrnum = arrinput.slice(2, arrinput.length - 1);
    // console.log(arrnum);

    // 定义一个新数组arrnumsort,对上面的arrnum每两个为一组进行遍历,进行节点排列
    let arrnumsort=[];
    for(let i=0;i<arrnum.length;i+=2){
        /* 2个节点为一组,分两种情况进行讨论:
            1、原数组有第二个节点,那么只需要将第一个节点,放置到原数组这个节点之后
            2、原数组无这个节点,那么依次向原数组添加第二个节点、第一个节点即可
        */
        if(arrnumsort.includes(arrnum[i+1])){
            arrnumsort.splice(arrnumsort.indexOf(arrnum[i+1])+1,0,arrnum[i])
        }else{
            arrnumsort.push(arrnum[i+1]);
            arrnumsort.push(arrnum[i]);
        }
    }
    // 对排列好的节点数组,按要求删除指定的节点元素
    arrnumsort.splice(arrnumsort.indexOf(x),1);
    console.log(arrnumsort.join(' '))
})();

全部评论

相关推荐

07-02 18:09
门头沟学院 Java
苍穹外卖和谷粒商城这俩是不是烂大街了,还能做吗?
想去重庆的鸽子在吐槽:你不如把这俩做完自己搞明白再优化点再来问 何必贩卖焦虑
点赞 评论 收藏
分享
05-12 17:00
门头沟学院 Java
king122:你的项目描述至少要分点呀,要实习的话,你的描述可以使用什么技术,实现了什么难点,达成了哪些数字指标,这个数字指标尽量是真实的,这样面试应该会多很多,就这样自己包装一下,包装不好可以找我,我有几个大厂最近做过的实习项目也可以包装一下
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-03 18:13
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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