對不起,如果這是一個非常基本的問題,我只是想學習遞歸。反向鏈表 - 遞歸
以下代碼可以反轉鏈接列表。
我理解直到第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