如何在java中递归地添加链表前面的节点

时间:2013-10-06 16:02:31

标签: java recursion linked-list

我需要使用递归在链接列表的前面添加一个节点。

以下是我正在尝试实施的添加方法。我只能弄清楚如何在链表的后面添加它:(

    public void add(E element)
    {
        Node<E> newNode = new Node<E>(element, null);

        if (this.next == null)
        {
            this.next = newNode;
        } else {
            next.add(element);
        }
    }

4 个答案:

答案 0 :(得分:1)

要将项目添加到单链接列表的前面,您需要创建一个新节点并使其指向列表的第一个节点。

此新节点现在是链接列表的新第一个节点。

答案 1 :(得分:1)

它应该非常简单,比最后添加元素容易得多。

这样的事情应该有效:

public void addToFront(E element) {
    element.next = rootElement;
    rootElement = element;
}

答案 2 :(得分:0)

算法应该是这样的

 public void add(E element)
    {
        Node<E> newNode = new Node<E>(element, null);
      if (root == null) 
      { 
         root = new Node(element, null);
      }
      else 
      {
         Node temp = new Node(element, null);
         temp.next = root;
         root = temp;
      }
    }

答案 3 :(得分:0)

public Node<E> addFirst(E element)
{
    return new Node<E>(element, this.next);
}

Node<String> list;
...
list = list.addFirst("a"):

在java SE中,另一个技巧是:使用字段“Node”创建一个外部容器类LinkedList。这样可以维护size()的计数器。这是一个有状态的课程。

以上内容可用于不可变列表类,这有利于并发。