gpt4 book ai didi

java - 从 `LinkedList` 中删除元素

转载 作者:行者123 更新时间:2023-12-02 04:26:41 24 4
gpt4 key购买 nike

各位,我的代码必须从列表中删除某个元素。它必须删除列表中出现的所有内容。例如,如果我想删除 "3" 并且输入是:

1
2
3
4
3
5

那么输出应该是:

1
2
4
5

但是我的代码仅删除最后一次出现的元素,正如我运行代码时可以看到的那样:

3
4
3
2
1

After removing element 3


4
3
2
1

smb 可以帮我解决这个问题吗?提前致谢!

public void removeElements(String number){
if(isEmpty()){
System.out.println("The list is empty!");
}
else{
if(firstLink.data.equals(number)){
firstLink = firstLink.next;
}
else{
Link current = firstLink.next;
Link previous = firstLink;
while(current != null){
if(current.data.equals(number)){
previous.next = current.next;
break;
}
else{
previous = current;
current = current.next;
}
}
}
}
}

最佳答案

删除元素的循环在第一场比赛时中断。也许像下面这样的东西会更好。当 current 匹配时,更新 previous.next 但保留 previous 指向前一个节点,当不匹配时,更新 previous 以指向当前节点。

while (current != null) {
if (current.data.equals(number)) previous.next = current.next;
else previous = current;
current = current.next;
}

关于java - 从 `LinkedList` 中删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32059736/

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