【发布时间】:2015-07-07 17:13:00
【问题描述】:
我有一个双向链表,我想递归地在链表的末尾插入一个元素。我现在有一种方法可以在没有递归的情况下执行此操作,并且可以正常工作。我似乎无法理解如何使用递归来做到这一点。我认为用递归在单链表的末尾插入很容易理解,所以我希望有人能解释一下当列表是双向链接时如何做到这一点。这是我想要递归的正常插入方法:
public void insert(T element) {
Node in = new Node(element);
if (in == null) {
first = in;
} else {
Node tmp = first;
while (tmp.next != null) {
tmp = tmp.next;
}
tmp.next = in;
in.prec = tmp;
}
}
【问题讨论】:
-
通常,双向链表对最后一个元素有一个标记,因此在末尾插入既不需要循环也不需要递归。
标签: java recursion insert linked-list doubly-linked-list