[请益] binary tree 计算高度

楼主: lyc811123 (L.Y.C)   2017-05-20 13:27:24
算法的内容是这样的
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;
}
}
想请问他的递回到底是怎么运作的,
思考了很久还是不知到他递回是怎么跑的…
可以麻烦大家帮小弟解答吗?
谢谢大家!
作者: jachin (火腿哥)   2017-05-20 14:18:00
你要不要先找简单的递回程式先了解递回(例如n阶乘或费氏级数)程式的意思是终止条件为指标T==null,往左右子树指标追踪,回传左右子树高度;并在每次只回传max(左右子树高度),最后一层的递回一定有一方是0,则回传0,倒数第二层max(0,0)+1,依此方式层层拆解递回,最后一个+1是root
楼主: lyc811123 (L.Y.C)   2017-05-20 15:15:00
费式阶层我都明白…只是不知道为什么变成节点就卡卡的。谢谢你,讲解清楚感恩!!
作者: wave1et (百分百殖利率)   2017-05-20 18:11:00
stack 的观念弄懂就清楚了,

Links booklink

Contact Us: admin [ a t ] ucptt.com