作者ccpz (OoOoOo)
看板TransCSI
标题Re: [问题] 计算Binary Tree的高
时间Sun May 21 18:08:59 2017
※ 引述《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() 这行就是看左边比较高,还是右边, 然後加上自己高度回传
所以就是这样递回,每一层都找出最高的楼层数
最後就知道他的高度了。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 122.116.78.81
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/TransCSI/M.1495361342.A.8D2.html
1F:推 lyc811123: 嗯嗯理解了,非常谢谢大大帮小弟解答!! 05/22 10:30