題目
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程式就跳出了
請問我的追蹤過程是否有誤?