哪位大侠知道 求二叉树深度的类C语言算法? 谢谢

Python017

哪位大侠知道 求二叉树深度的类C语言算法? 谢谢,第1张

主方法调用RootFirst(&root,0)即可,g_nMax

即为最终的树的深度。

int

g_nMax

=

0

voild

RootFirst(TreeNode

*p,int

nLevel)

{

if

(null

==

p->left

&&

null

==

p->right)

//当前为叶子节点

{

if

(g_nMax

<

nLevel)

{

g_nMax

=

nLevel

return

}

}

if(null

!=

p->left

)

{

RootFirst(p->left,nLevel+1)//遍历左子树

}

if(null

!=

p->right)

{

RootFirst(p->right,nLevel+1)//遍历右子树

}

}

从根节点到叶子节点的每一个分支中,最长分支的节点的总数。(深度)

比如:

某二叉树共有7个结点,其中叶子结点只有1个,只有一种可能,就是所以非叶子节点都只有一个分支。这样从根到叶要走7个节点。