所以,我的代码有点问题。我在
处收到错误if(Front.data==null)
Exception in thread "main" java.lang.NullPointerException at DoubleLinky.insert(DoubleLinky.java:17)
我该如何解决这个问题,实际上我很难学习双链表的工作原理。
public class DoubleLinky<AnyType> implements DoublyLinkedList<AnyType>
{
private MyDoubleNode<AnyType> Front = null;
MyDoubleNode<AnyType> Tail = new MyDoubleNode<AnyType>();
public void insert(AnyType x)
{
if(lookup(x)==true)
return;
if(Front.data == null)
{
Front.data = x;
return;
}
if(Tail.data == null)
{
Tail.data = x;
return;
}
MyDoubleNode<AnyType> A = Front;
MyDoubleNode<AnyType> C = Tail.next;
MyDoubleNode<AnyType> B = new MyDoubleNode<AnyType>(x, C, A);
A.next = B;
C.prev = B;
}
最佳答案
在这一行Front
被初始化为null
private MyDoubleNode<AnyType> Front = null;
当您尝试访问成员时:
if (Front.data == null)
你自然会得到一个NullPointerException
Front
需要在访问其成员之前初始化。例如
private MyDoubleNode<AnyType> Front = new MyDoubleNode<AnyType>();
乍一看,您可能希望将 Tail
初始化为 null。然后在使用之前检查它是否为空。例如
if (Tail != null && Tail.data == null)
关于java - 双向链表 - 插入方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32683626/