求二叉树的深度
算法基本思想:首先分析二叉树的深度和它的左、右子树深度之间的关系。
从二叉树深度的定义可知,二叉树的深度应为其左、右子树深度的最大值加1。
由此,需先分别求得左、右子树的深度,算法中“访问结点”的操作改为:求得左、右子树深度的最大值,然后加1 。
int Depth (BiTree T )
{ // 返回二叉树的深度
if ( !T ) depthval = 0;
else {
depthLeft = Depth( T->lchild );
depthRight= Depth( T->rchild );
depthval = 1 + (depthLeft > depthRight ? depthLeft : depthRight);
}
return depthval;
}
厚积薄发,行胜于言@飞鸟各投林