首页 > 技术文章 > 求二叉树的深度

hellochennan 2017-04-14 09:51 原文

算法基本思想:首先分析二叉树的深度和它的左、右子树深度之间的关系。

从二叉树深度的定义可知,二叉树的深度应为其左、右子树深度的最大值加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;

}

推荐阅读