刪除許多節點時出現問題。雙向鏈表java刪除
我可以將它們刪除,如果我選擇的節點是這樣的:
但如果我這樣做,我不能刪除它們:
我的代碼:
public boolean remove(ProductNode<E> data) {
if (isEmpty()) {
throw new NoSuchElementException();
}
for (ProductNode<E> current = this.head; current != null; current = current.next) {
ProductNode<E> pre = current.prev;
ProductNode<E> next = current.next;
if (data != null) {
if (current.data.equals(data.data)) {
if (pre == null) {
head = next;
current.next = null;
} else {
if (next != null) {
next.prev = pre;
}
}
if (next == null) {
pre.next = null;
current.prev = null;
tail = pre;
} else {
if (pre != null) {
pre.next = next;
}
}
}
}
}
size--;
return false;
}
搜索節點
public ProductNode<E> search(E data) {
for (ProductNode<E> current = this.head; current != null; current = current.next) {
if (current.data.equals(data)) {
return current;
}
}
return null;
}
刪除
public void remove(E e) {
remove(search(e));
}
刪除:
for(Tab_Product p : remove_list){
List_Products.list_products.remove(p);
}
你有沒有嘗試用調試器逐步完成代碼?這可能會使得它更清楚發生了什麼,以及何時(如果在刪除相鄰節點時發生問題,或者刪除列表中的第一個節點時發生問題) – whrrgarbl