在双链接列表中插入新元素

时间:2012-12-16 09:41:29

标签: java list insert linked-list double

我必须实现双链表。方法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;
}

2 个答案:

答案 0 :(得分:2)

首先命名您的班级DoublyLinkedNode。链接的一系列此类对象将构成一个双重链接的列表

使用正确的类名非常重要。一旦你修复了你的nsme节点而不是列表,问题就会变得容易多了。

在伪代码中:

  • 将root的前一个设置为新节点
  • 在根
  • 旁边设置新节点
  • 将root设置为新节点

答案 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;
    }
}