题解 | #从单向链表中删除指定值的节点#
从单向链表中删除指定值的节点
https://www.nowcoder.com/practice/f96cd47e812842269058d483a11ced4f
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
// 定义获取的值,节点数、头部值、要删除的值
rl.on('line', function (line) {
const arr = line.split(' ').map(Number)
let nodeNum = arr[0]
let headValue = arr[1]
let nodeArr = arr.slice(2, arr.length-1)
let deleteValue = arr[arr.length-1]
// 定义结果数组
const nodeList = [headValue]
// 循环处理插入,形成链表, i用于遍历,j用于在nodeArr里面获取数据
for(let i = 0, j = 0; i < nodeNum-1; i++, j += 2){
// 找到要在哪里插入值
const index = nodeList.indexOf(nodeArr[j+1])
nodeList.splice(index+1, 0, nodeArr[j])
}
// 删除指定值
const deleteIndex = nodeList.indexOf(deleteValue)
nodeList.splice(deleteIndex, 1)
console.log(nodeList.join(' '))
});

