作者Paravion (ElonMusk)
看板Grad-ProbAsk
標題101交大 資演 第1大題 第2題
時間Tue Jan 23 15:42:20 2018
題目
https://i.imgur.com/35Y4BOm.jpg
爬文很少遇到第一題就卡關的
追蹤順序如下
按照題目的要求一開始 r=20
20有左子樹18所以遞歸unknown(18)
18有左子樹13所以遞歸unknown(13)
13沒有左子樹所以繼續往下走
13有右子樹3所以遞歸unknown(3)
3沒有左子樹所以繼續往下走
3沒有右子樹所以繼續往下走
q=p->left; //將3的左子樹賦值給q,3的左子樹是NULL所以q也是NULL
p->left = p->right; // 將3的右子樹賦值給左子樹,3的右子樹是NULL所以左子樹賦值完也是NULL
p->right=q; //將q賦值給3的左子樹,q是NULL所以左子樹賦值完也是NULL
結束
這一題的code看起來是要進行左右子樹交換
但是一路call到最下層卻要到左右子樹皆NULL的node才不會跳出
最後做三行沒意義的NULL=NULL程式就跳出了
請問我的追蹤過程是否有誤?
-----
Sent from JPTT on my iPhone
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.15.50.43
※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1516693345.A.0A5.html
推 djmez: 被呼叫的遞迴結束回呼叫的下一行繼續執行 01/23 15:46
→ djmez: 你的unknown(13)看到unknown(3)就會從第四行繼續跑下去了 01/23 15:50
→ djmez: unknown(18)也是比照辦理 01/23 15:50
→ Paravion: 了解 感謝回覆 01/23 16:11
推 bightm80144: 請問一下第一大題的答案是? 01/23 17:06
→ bightm80144: 是CEB嗎 01/23 17:07
推 djmez: CEB沒錯 01/23 17:10
推 bightm80144: 謝謝! 01/23 17:17