如何初始化双向链表,然后在java中添加第一个元素?

斯蒂芬·伯恩斯

我目前正在创建一个双向链表,但我正在努力这样做,因为构造函数需要前一个元素和下一个元素。然而,检查列表只会产生两个空元素,头部和尾部。节点的构造函数是

    public Node(Node prev, Node next, String link) {
        this.prev = prev;
        this.next = next;
        this.link = link;
    }

我拥有的空列表的构造函数是

public DoublyLinkedList() {
    head = tail = null;
}

我添加元素的代码是

public void addElement(String link) {
    Node n = new Node(tail.prev, tail, link);
    if (head == null) {
        head = n;
        head.next = n;
    }
    tail.prev = n;
    tail = n;
}

我知道我导致 null 的原因是因为当我将它传递给构造函数时 tail == null 。但是,我不知道如何在创建新节点之前更新 tail 的值。我尝试构建空列表

public DoublyLinkedList() {
    head = tail = null;
    head.prev = null;
    head.next = tail;
    tail.next = null;
    tail.prev = head;
}

但这也没有显示添加的元素。

大卫·比利亚雷亚尔

addElement如果是这种情况,我将假设将一个元素添加到列表的末尾,试试这个

Node n = new Node(tail, null, link); // The new tail
if (head == null) {
    head = n;
    tail = n;
}else{
    tail.next = n;
    tail = n;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从双向链表中删除第一个和最后一个节点?

如何初始化类之外的数组并为第一个元素设置值?

如何用双向链表正确初始化一个大结构?

使用预设值初始化第一个 ajax 数据,然后从成功响应中传递它

通过第一个元素推导出初始化列表的类型

如何获取PHP中已经初始化的字符串的第一个字符?

如何获得初始化数据段的第一个地址

在已安装的挂钩函数中初始化Viewer.js。(错误:第一个参数是必需的,并且必须是一个元素)

在 Python 中初始化列表的第一个索引

初始化字典中变量的第一个实例

pytorch卷积层中的第一个初始化权重是多少

搜索正在跳过Java链表中的第一个元素

如何从Oracle的链表中获取第一个元素?

在函数中删除第一个元素后如何更新链表的pHead?

反转双向链表不会显示输出中的第一个节点

在末尾的双向链表添加节点仅在printf上显示第一个和最后一个节点

如何按linq查询对组中的元素进行排序,然后选择第一个?

如何初始化,添加一个现有的远程,然后在 Git 中推送一个新分支?

在两个for循环中的第一个循环之后,如何摆脱初始化?

如何创建一个空的视图数组,然后将其初始化以在 SwiftUI 中呈现?

链表遍历会跳过第一个元素

如何通过第一个节点初始化和填充Apache Ignite数据库?

如何使用来自服务器的数组的第一个实例初始化变量

使用Google Assistant在Dialogflow中的第一个Intent响应之前初始化会话实体类型

云功能中的 Firestore 需要几分钟才能初始化并发出第一个请求

为什么Java编译器在第一个语句super()之后在构造函数中复制实例初始化程序块?

用一个结构初始化单链表

我试图在 Python 中定义一个链表,但为什么它总是要添加第一个元素

通过指向第一个结构的指针初始化结构内的结构