微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法在索引处添加节点是双向链表中的列表为空

如何解决无法在索引处添加节点是双向链表中的列表为空

我创建了一个双向链表,用 Java 中的节点填充。我正在尝试制作一种在某个索引处添加节点的方法。问题是,如果我尝试添加一个节点并且没有其他节点,我会得到 NullPointerException。所以我会写 list.add(0,0); 例如,我会得到 NullPointerException (第一个数字是索引,第二个是值)。但是,如果我首先使用我的方法,只是放入一个节点,然后尝试 list.add(0,0);list.add(1,0); 它工作。我认为问题在于如何遍历节点。目前的代码如下所示:

void add(int index,T t)
    {
        ListNode<T> node = header;
        ListNode<T> newNode = new ListNode<T>(t);

        if(index < 0 || index > size)
        {
            throw new indexoutofboundsexception("Index not allowed");
        }
        int counter = 0;
        while(node.next != null && counter < index)
        {
            node = node.next;
            counter++;
        }
        if(counter == 0)
        {
            header = newNode;
            newNode.next = node;
        }
        else
        {
            node = node.prevIoUs;
            ListNode<T> temp = node.next;
            node.next = newNode;
            newNode.next = temp;
        }
        newNode.prevIoUs = node;
        newNode.next.prevIoUs = newNode;
        size++;
    }

我相信这就是问题所在:

while(node.next != null && counter < index)

你知道如何去做吗?我想不出别的办法。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。