我正在尝试为双向链表处理删除函数,但我不断收到空指针异常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;
}
我确定这很愚蠢,但我不知道它是什么。任何帮助将不胜感激。