gpt4 book ai didi

java - java中删除链表中的元素

转载 作者:行者123 更新时间:2023-12-02 01:05:06 25 4
gpt4 key购买 nike

尝试从链接列表中删除特定元素

void delete(int num) {
Node node = head;
Node prev = null;
if(head.data == num) {
head = head.next;
}
while(node.next!=null) {
prev= node;
if(node.next.data==num) {
node.next=node.next.next;
node=prev;
}
node= node.next;
}
if(node.data == num) {
prev.next = null;
}
}

错误

    java.lang.NullPointerException
at hackerEarth.linkedList.delete(linkedList.java:44)
at hackerEarth.linkedList.main(linkedList.java:67)

第 44 行是 - while(node.next!=null)第 67 行是 -delete(sc.nextInt());

最佳答案

您只是检查 node.next 而不是检查 node 本身

node.next != null
<小时/>

看看 - 下面你正在分配

node.next = node.next.next;

不,让我们想象一下,在这个 node.nextnull 之后 - 我们下面有几行

node = node.next;

现在nodenull意味着什么,导致44行中出现NPE

while(node.next != null) // NPE! trying to access 'next' of null

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

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