java - 双向链表 - 插入方法

标签 java

所以,我的代码有点问题。我在

处收到错误
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/

相关文章:

java - java中TimerTask调度时出现异常延迟

java - 如何在代码中写入 'android:configChanges="KeyboardHidden"' ?

java - HtmlUnit 安全警告 : Please treat the URL above as you would your password and do not share it with anyone

java - 为 flink 输出流提供类型提示的未弃用方法是什么?

java.lang.IllegalStateException : Unable to read meta-data for class while implementing open api with spring boot

java - Java中如何将10位电话号码解析为整数

java - 我们可以在同一个资源上实现两个 Get 请求吗

java - 资源解析器异常 : Cannot resolve element with ID Body

java - Android ftp 下载无法正确下载文件

java - 如何为执行器服务添加异常(exception)