[理工] 101交大 资演 第1大题 第2题

楼主: Paravion (ElonMusk)   2018-01-23 15:42:20
题目
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程式就跳出了
请问我的追踪过程是否有误?
作者: djmez   2018-01-23 15:46:00
被呼叫的递回结束回呼叫的下一行继续执行你的unknown(13)看到unknown(3)就会从第四行继续跑下去了unknown(18)也是比照办理
楼主: Paravion (ElonMusk)   2018-01-23 16:11:00
了解 感谢回复
作者: bightm80144 (Sky老玻璃杯)   2018-01-23 17:06:00
请问一下第一大题的答案是?是CEB吗
作者: djmez   2018-01-23 17:10:00
CEB没错
作者: bightm80144 (Sky老玻璃杯)   2018-01-23 17:17:00
谢谢!

Links booklink

Contact Us: admin [ a t ] ucptt.com