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

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

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(' '))
})();

全部评论

相关推荐

码农索隆:单休一个月少休息4天,一年就是48天,平时节假日,别人3天假期,单休的两天
点赞 评论 收藏
分享
06-17 21:57
门头沟学院 Java
白友:噗嗤,我发现有些人事就爱发这些,明明已读不回就行了,就是要恶心人
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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