求助:统计二叉树高度的代码,该如何理解?
int treehigh(BitTree T) { if(!T) return 0;
else{
int lh,rh,h;
lh=treehigh(T->lchild); //统计左孩子个数
rh=treehigh(T->rchild); //统计右孩子个数
h=(lh>rh ? lh:rh)+1; //谁大取谁再加根节点
return(h);
}
红色代码该如何理解?是不是递归函数如果定义为整型的话,每递归一次其值加1?还有,lh,rh都是函数内部变量,并没有通过参数传递,他们的值怎么会改变呢?困惑中……,恳请前辈指教!