c++ 求二叉树深度

论坛 期权论坛 期权     
okranran2013   2018-4-26 13:45   12323   3
已知二叉树节点定义如下

Class Tree
{
Public;
Tree *right;
Tree*left;
}
要求实现填充下面的方法计算一颗二叉树的深度
int depth(Tree*t)


分享到 :
0 人收藏

3 个回复

倒序浏览
2#
热心网友  15级至尊 | 2018-4-30 02:07:45
为了求得树的深度,可以先求左右子树的深度,取二者较大者加1即是树的深度,递归返回的条件是若节点为空,返回0
int depth(Tree*聽t)

聽聽聽聽聽int聽deep聽=聽0;
聽聽聽聽聽if(t)
聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽int聽lchilddeep聽=聽depth(t->left);
聽聽聽聽聽聽聽聽聽聽int聽rchilddeep聽=聽depth(t->right);
聽聽聽聽聽聽聽聽聽聽deep聽=聽lchilddeep>=rchilddeep?lchilddeep+1:rchilddeep+1;
聽聽聽聽聽}
聽聽聽聽聽return聽deep;
聽}
3#
南瓜猪的的的  2级吧友 | 2018-4-30 02:07:46
二叉树是图
图用 boost graph library
4#
bangpeng64233  1级新秀 | 2018-4-30 02:07:47
递归:
if (t==NULL) return 0;
else  return 1+max(depth(t->right),depth(t->left));
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP