gpt4 book ai didi

Java : remove Node from simply linked list

转载 作者:行者123 更新时间:2023-12-01 19:50:31 24 4
gpt4 key购买 nike

我有两个列表 ItemsList 、 ilist 。如果 ilist 的节点包含与 ItemsList 的节点相同的值,我必须从 ItemsList 中删除它们,但是每次我使用下面代码中的删除函数时,我的列表都是空的:

 public void remove(ItemsList ilist) {
if (empty()) {
System.out.println("The list is empty.");
} else {
this.bubblesort();
ilist.bubblesort();

ItemNode a = this.first;
ItemNode b = ilist.first;

for(a=first;a!=null;a=a.next) {
for(b=first;b!=null;b=b.next) {
if(a.item==b.item) {
this.deleteNode(a.item);
}
}
}
}
}

private void deleteNode(int data) {
ItemNode prev = null;

for(ItemNode trace = first; trace != null; trace = trace.next) {
if(trace.item == data) {
if (prev == null) {
first = trace.next;
} else {
prev.next = trace.next;
}
}
else {
prev = trace;
}
}
}

假设我有 ItemsList : [0,1,2,3,4] 和 ilist : [0,1] 这意味着 0 ,1 将从 ItemsList 中删除,但是当我显示 ItemsList 时它说它是空的。我无法使用数组、数组列表或其他 Java 库来解决特定问题。感谢您抽出时间。

最佳答案

我会做什么:

public void remove(ItemsList iList) {
if (iList.isEmpty()) {
System.out.println("The list is empty.");
} else {
ItemNode prev = null;
ItemNode a = this.first;
while (a != null) {
for (ItemNode b = iList.first; b != null; b = b.next) {
if (a.item == b.item) prev.next = a.next;
}
a = a.next;
}
}
}

关于Java : remove Node from simply linked list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59090684/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com