我正在编写代码来删除列表中的节点,而我遇到的问题是我无法弄清楚的。
我的delete_node
函数:
public void delete_node(int data){
node ptr=head;
//if 1st node is to be Deleted
if(ptr != null && ptr.data==data){
head=ptr.link;
ptr.link=null;
}
//line 90 below:
while(ptr.link.data!=data){
ptr=ptr.link;
}
ptr.link=ptr.link.link;
}
这是main
函数:
public static void main(String[] args) {
list o=new list();
o.insert_beginning(1);
o.insert_beginning(2);
o.delete_node(2);//line 8
o.display();
这是错误:
Exception in thread "main" java.lang.NullPointerException
at list.delete_node(list.java:90)
at Main.main(Main.java:8)
答案 0 :(得分:0)
问题是您到达列表的末尾而未找到要删除的<component :is="'example-component'" :value="exampleValue"></component>
。基本上尝试删除列表中没有的node
。您还可以访问node
,而无需检查ptr.link.data
是否有效。这两种方法都可以解决如下:
ptr.link
这只会检查public void delete_node(int data){
node ptr=head;
if(ptr == null)
return;
//if 1st node is to be Deleted
if(ptr != null && ptr.data==data){
head=ptr.link;
ptr.link=null;
}
while(ptr.link != null && ptr.link.data!=data){
ptr=ptr.link;
}
if(ptr.link != null)
ptr.link=ptr.link.link;
}
最初是否为空,例如列表是空的。它还检查ptr
为空。