算法基本思想:首先分析二叉樹的深度和它的左、右子樹深度之間的關係。算法
從二叉樹深度的定義可知,二叉樹的深度應爲其左、右子樹深度的最大值加1。二叉樹
由此,需先分別求得左、右子樹的深度,算法中「訪問結點」的操做改成:求得左、右子樹深度的最大值,而後加1 。return
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;
}