从JavaScript中的单链列表中删除元素
假设我们有一个像这样的单链表-
const list = {
value: 1,
next: {
value: 2,
next: {
value: 3,
next: {
value: 4,
next: {
value: 5,
next: {
value: 6,
next: {
value: 7,
next: null
}
}
}
}
}
}
};我们需要编写一个JavaScript函数,该函数接受一个列表,如第一个参数和一个数字作为第二个参数。
函数应搜索列表中是否存在具有该值的节点,如果存在,则函数应从列表中删除该节点。
示例
为此的代码将是-
const list = {
value: 1,
next: {
value: 2,
next: {
value: 3,
next: {
value: 4,
next: {
value: 5,
next: {
value: 6,
next: {
value: 7,
next: null
}
}
}
}
}
}
};
const recursiveTransform = (list = {}) => {
if(list && list['next']){
list['value'] = list['next']['value'];
list['next'] = list['next']['next'];
return recursiveTransform(list['next']);
}else{
return true;
};
}
const removeNode = (list = {}, val, curr = list) => {
//到达终点,找不到商品
if(!list){
return false;
}
if(list['value'] !== val){
return removeNode(list['next'], val, list);
};
return recursiveTransform(list);
};
console.log(removeNode(list, 3));
console.log(JSON.stringify(list, undefined, 4));输出结果
控制台中的输出将是-
true
{
"value": 1,
"next": {
"value": 2,
"next": {
"value": 4,
"next": {
"value": 6,
"next": {
"value": 7,
"next": null
}
}
}
}
}热门推荐
10 读书祝福语女生短句简短
11 感谢同事新婚祝福语简短
12 感谢教官文案祝福语简短
13 员工聚会蛋糕祝福语简短
14 元宵发客户祝福语简短
15 给团队信心祝福语简短
16 医美的祝福语大全简短
17 异国姻缘的祝福语简短
18 兄妹拍照祝福语简短的话