gpt4 book ai didi

java - nullpointerException 错误删除节点

转载 作者:行者123 更新时间:2023-12-01 14:39:24 28 4
gpt4 key购买 nike

我被困在这条路上了,这真的开始让我感到沮丧。我想我一切正常,除了这一种方法。

当我从 LL 中删除节点时,我在下次尝试时遇到空指针异常,但我不知道是什么。

public void timeSlice(int cpuTime){
for(Node curr=head; curr.getNext()!=head; curr=curr.getNext()){
curr.time=curr.time-cpuTime;
System.out.print("<" + curr.pid + ", " + curr.time +">" + " ");
//if the time remaining <= 0 then remove the node
if(curr.time<=0){
System.out.println("\nProcess " + curr.pid + " has finished, and is now being terminated");
remove(curr);
}
}
}//end timeSlice

它发生在删除并重新启动该方法之后。我认为这是因为我刚刚删除了当前内容,但我不是 100% 确定。

public void remove(Node node){
if(size == 0){
return;
}
else if(size == 1){
removeFirst();
}
else{
Node curr;
for(curr=head; curr.getNext()!=node; curr=curr.getNext()){
;
}
curr.setNext(curr.getNext().getNext());
node.setNext(null);
}
size --;
}//end remove

现在当前的测试是它将删除倒数第二个节点

最佳答案

这可能发生是因为 head == null。下次发布错误堆栈跟踪,您将有更高的机会获得更准确的答案。

如果 head 为 null,则将 curr 设置为 null,然后对 null 调用“getNext()”方法,这将导致 nullPointerException。至少,这是我最好的猜测。

关于java - nullpointerException 错误删除节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16138447/

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