我需要使用递归在链接列表的前面添加一个节点。
以下是我正在尝试实施的添加方法。我只能弄清楚如何在链表的后面添加它:(
public void add(E element)
{
Node<E> newNode = new Node<E>(element, null);
if (this.next == null)
{
this.next = newNode;
} else {
next.add(element);
}
}
答案 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()
的计数器。这是一个有状态的课程。
以上内容可用于不可变列表类,这有利于并发。