使用Java值通过链接列表删除方法

问题描述 投票:0回答:1

尝试使此链表删除方法起作用。如果找到了值,则应从中间删除一个节点,并保留序列的其余部分。如果最后一个节点是要删除的节点,则不应修改列表顺序。当第一个节点值为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--;
 }
javascript linked-list
1个回答
0
投票

在下面的代码中,您等于值,因此覆盖了valueToRemove

 let foundValue = valueToRemove = currentNode.value;

将其更改为

let foundValue = valueToRemove === currentNode.value;
© www.soinside.com 2019 - 2024. All rights reserved.