对不起,如果这是一个非常基本的问题,我只是想学习递归。反向链表 - 递归
以下代码可以反转链接列表。
我理解直到第3行的逻辑,但是我很困惑第4行将被称为(n.next=prev)
,因为在执行该行之前再次调用该函数。
有人可以让我知道这种递归的流程吗?
void reverse(node n, node prev) {
if (n == null) { newroot = prev; return; }
reverse(n.next, n);
n.next = prev;
}
代码来自哪里,出于兴趣?我看不到第4行会如何运行。第2行是基本情况,它返回一些东西,所以第3行将一直阻塞,直到它返回一些东西。是否有一些线程正在进行,这并不明显? – 2013-03-15 15:36:15
该代码来自http://www.careercup.com/question?id=7787672 – Learner 2013-03-15 15:37:30
谢谢,但我仍然不确定。 +1的问题。 – 2013-03-15 15:40:11