我正在尝试提高我的递归技能(或者可能是第一次获得它们:))。为此,我编写了一段 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;
}
}
此代码工作正常,但为了学习,我想避免使用全局变量(节点 prev)进行递归函数内部的操作。那么这个函数是否可以重写来完全避免呢?欢迎任何其他优化:)