Re: [问题] 计算Binary Tree的高

楼主: ccpz (OoOoOo)   2017-05-21 18:08:59
※ 引述《lyc811123 (L.Y.C)》之铭言:
: 算法的内容是这样的
: int height(Node*T)
: {
: if(T==null)return 0;
: else
: {
: int hL=height(T->Lchild);
: int hR=height(T->Rchild);
: return max(hL,hR)+1;
: }
: }
: 想请问他的递回到底是怎么运作的,
: 思考了很久还是不知到他递回是怎么跑的…
: 可以麻烦大家帮小弟解答吗?
: 谢谢大家!
这样子的比喻不知道可不可以? :
如果在一栋大楼,你知道底下有五层楼
那你就知道你自己在的地方是第六层(5+1)
所以以 binary tree 来说, 他的高就是最长的楼层
所以return max() 这行就是看左边比较高,还是右边, 然后加上自己高度回传
所以就是这样递回,每一层都找出最高的楼层数
最后就知道他的高度了。
作者: lyc811123 (L.Y.C)   2017-05-22 10:30:00
嗯嗯理解了,非常谢谢大大帮小弟解答!!

Links booklink

Contact Us: admin [ a t ] ucptt.com