【发布时间】:2022-01-20 20:14:11
【问题描述】:
我正在尝试删除链接列表中的一个节点。我重写了它,因为我想在使用链表时包含优先级队列效果。 remove(String name) 方法应该检查三种情况,如果根为空,如果根是源,或者是否有根但它不为空。如果是最后一个,它将继续通过带有while(temp.next!=null) 的LL 并检查下一个节点名称值是否是请求名称。从我的思考过程来看,它应该有效。但是,它显然不起作用,因为它不会删除任何东西。我在下面附加了删除方法和节点类。根节点的名字是root。
public void remove(String name) {
Node temp = root;
if(root==null){
}
else if (root.Name==name){
root=root.next;
}
else{
while (temp.next!=null) {
if(temp.next.Name == name){
if(temp.next.next!=null){
Node saver = temp.next.next;
temp.next = saver;
}
else{
temp.next = null;
}
break;
}
temp=temp.next;
}
}
}
public class Node {
String Name;
Integer pri;
Node next;
public Node(int pri, String Name) {
this.pri = pri;
this.Name = Name;
}
}
【问题讨论】:
-
我应该声明,目标在根、中间或末端的期望都不会导致相同的不移除结果
-
@TimMoore 谢谢,今天早上我一定把脑子忘在床边了。
标签: java linked-list nodes