我必须实现双链表。方法prepend应该插入一个新元素bevor现有列表。但我不知道如何将新元素的引用“next”与旧列表的引用“prev”相关联。 提前致谢。
public class DoublyLinkedList {
private String info;
private DoublyLinkedList next;
private DoublyLinkedList prev;
public DoublyLinkedList(String info) {
this.info = info;
this.next = this.prev = null;
}
private DoublyLinkedList(String info, DoublyLinkedList prev, DoublyLinkedList next) {
this.info = info;
this.prev = prev;
this.next = next;
}
DoublyLinkedList prepend(String info) {
// Beginning of a list, insert new element
if (prev == null) {
prev = new DoublyLinkedList(info, null, next);
} else {
prev.prepend(info);
}
return prev;
}
答案 0 :(得分:2)
首先命名您的班级DoublyLinkedNode
。链接的一系列此类对象将构成一个双重链接的列表。
使用正确的类名非常重要。一旦你修复了你的nsme节点而不是列表,问题就会变得容易多了。
在伪代码中:
答案 1 :(得分:0)
您需要通过使用当前节点设置新节点的next_link来将新节点与当前节点链接。
public class DoublyLinkedList {
...
DoublyLinkedList prepend(String info) {
// Beginning of a list, insert new element
if (prev == null) {
// this is the changed line.
prev = new DoublyLinkedList(info, null, this);
} else {
prev.prepend(info);
}
return prev;
}
}