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