Java 双链表空指针异常
我正在尝试为双链接列表使用一个remove函数,但是我一直在Java 双链表空指针异常,java,linked-list,Java,Linked List,我正在尝试为双链接列表使用一个remove函数,但是我一直在current.prev.next=current.next上得到一个空指针异常零件。我不认为我真的理解空指针异常是什么,因为我不知道如何修复它。log函数只是我编写以写入输出文件的函数,retval[1]是我正在搜索以删除的元素 Node current = head; while(current != null) { if((current.data).compareTo(retval[1]
current.prev.next=current.next上得到一个空指针异常代码>零件。我不认为我真的理解空指针异常是什么,因为我不知道如何修复它。log函数只是我编写以写入输出文件的函数,retval[1]是我正在搜索以删除的元素
Node current = head;
while(current != null)
{
if((current.data).compareTo(retval[1]) == 0)
{
if(current.prev == null)
head = current.next;
if(current.next == null)
tail = current.prev;
current.prev.next = current.next;
current.next.prev = current.prev;
current = null;
valid++;
log(line + "\n" + "Sucsessfully Removed \n");
}
else
{
log(line + "\n" + InvalidTransaction + " - Element does not exist \n");
}
current = current.next;
}
我肯定这很愚蠢,但我不知道是什么。任何帮助都将不胜感激。ANullPointerException
表示您试图对null
的对象执行某些操作。既然current
肯定不是null
,那么current.prev
一定是null
。从那里开始。只需更换
current.prev.next = current.next;
current.next.prev = current.prev;
与
而且,一旦找到元素,就需要中断循环
if(null != current.prev) current.prev.next = current.next;
if(null != current.next) current.next.prev = current.prev;