【发布时间】:2018-01-05 17:11:59
【问题描述】:
我目前正在创建一个双向链表,但我正在努力这样做,因为构造函数需要前一个元素和下一个元素。但是,检查列表只会产生两个空元素,头部和尾部。节点的构造函数是
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;
}
但这也没有显示元素被添加。
【问题讨论】:
-
如果没有明确定义“不起作用”是什么意思,我们无法为您提供帮助。
-
@JoeC 我在帖子中,当我尝试实际检查列表时,我只得到空元素,头部和尾部。为了清楚起见,我进行了编辑。
-
看来你需要学习使用调试器了。请帮助自己一些complementary debugging techniques。如果您之后仍有问题,请随时回来提出更具体的问题。
-
我知道如何使用调试器。我问为什么,当我打印列表时,它只打印一个元素:null。
-
打印语句在哪里?
标签: java nodes doubly-linked-list