尝试使此链表删除方法起作用。如果找到了值,则应从中间删除一个节点,并保留序列的其余部分。如果最后一个节点是要删除的节点,则不应修改列表顺序。当第一个节点值为x且使用值x调用remove函数时,它也应将起始节点替换为第二个节点。
remove(valueToRemove) {
let currentNode = this.firstNode;
let previousNode;
let foundValue = valueToRemove = currentNode.value;
while (!foundValue) {
previousNode = currentNode;
currentNode = currentNode.next;
if (!currentNode) {
return;
}
foundValue = valueToRemove === currentNode.value;
}
let nextNode = currentNode.next;
if (currentNode === this.firstNode) {
this.firstNode = nextNode;
} else {
previousNode.next = nextNode;
}
this.listSize--;
}
在下面的代码中,您等于值,因此覆盖了valueToRemove
let foundValue = valueToRemove = currentNode.value;
将其更改为
let foundValue = valueToRemove === currentNode.value;