抱歉,如果这是一个非常基本的问题,我只是想学习递归。
下面的代码可以反转一个链表。
我理解第 3 行之前的逻辑,但我很困惑何时调用第 4 行,(n.next=prev)
因为在执行此行之前再次调用该函数。
有人可以让我知道这个递归的流程吗?
void reverse(node n, node prev) {
if (n == null) { newroot = prev; return; }
reverse(n.next, n);
n.next = prev;
}