我的代码出现了问题,在删除该节点后,同一节点将显示为下一个节点中的前一个节点。试图删除节点4。
穿透力:节点: 5;节点: 15;NextNode: 16;节点: 16;节点: 29;节点: 29;节点: 29;NextNode: 4:透水:节点:29;节点: 4;NextNode: 5:穿透力:节点: 4;节点: 5;NextNode: 15
移除后
穿透力:节点: 5;节点: 15;NextNode: 16;节点: 16;节点: 16;NextNode: 29;节点:16;节点: 29;NextNode: 5:节点: 4;节点: 5;NextNode: 15
public Node deleteValue(int i) {
Node node = start;
do {
if (node.next.getData() == i) {
Node n = node.next;
node.next = n.next;
size--;
if (n == start) {
start = node;
}
return n;
}][1]
node = node.next;
} while(node != start);
return null;
}发布于 2017-05-03 14:27:46
删除项时,您将丢失一行简单的代码。必须设置上一个元素的下一个元素和下一个元素的前一个元素.你实际上错过了第二部分。代码应该是这样的:
Node current = start;
do{
if(current.getData() == i){
// set the previous's next element
current.previous.next = current.next;
// set the next element's previous element
current.next.previous = current.previous;
this.size--;
return current;
}
current = current.next;
}while(node != start);
return null;https://stackoverflow.com/questions/43762384
复制相似问题