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

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

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

找到加入数字的前一个节点,用splice方法加入新节点就可以了

let str=readline();  //读取输入
let arr=str.split(" ").map(Number);  //把输入变成数字数组
let n=arr[0];  //总节点数
let removeNum=arr[arr.length-1];  //要移除的节点
let unRemoveArr=[];  //定义未移除节点的数组
unRemoveArr[0]=arr[1];  //第一个节点为数字数组下标为1的数字
for(let i=0,j=0;i<n-1;i++,j+=2){  //执行五次加入节点
    let tempArr=arr.slice(2+j,4+j);  //截取节点开头和新加入的节点数字
    let start=tempArr[1];  //节点开头
    let newNum=tempArr[0];  //新加入的节点数字
    let index = unRemoveArr.indexOf(start);  //节点开头的下标
    unRemoveArr.splice(index+1,0,newNum);  //加入新数字
}
let RemovedArr=unRemoveArr.filter(item=>item!=removeNum);  //删除要移除的节点
console.log(RemovedArr.join(" "))  //输出
全部评论

相关推荐

昨天 22:16
已编辑
武汉大学 运营
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务