【发布时间】:2013-06-18 14:36:07
【问题描述】:
我正在努力提高我的递归技能(或者可能是第一次获得它们 :))。为此,我写了一段Java代码来反转一个单链表,如下:
node head, prev; // head is pointing to the start of the linked list
void reverselist(node current) {
if (current.next != null) {
reverselist(current.next);
}
if (current.next == null) {
this.head = current;
prev = current;
}
else {
prev.next = current;
current.next = null;
prev = current;
}
}
这段代码运行良好,但为了学习,我想避免在递归函数内部使用全局变量(node prev)进行操作。那么这个函数是否可以重写来完全避免呢?欢迎任何其他优化:)
【问题讨论】:
-
这是CodeReview的更多问题。
-
我的所有链表中都有一个指向 firstNode 的私有成员,也许这对你也有用。
标签: java recursion linked-list