数据结构求二叉树深度,问题在代码上标出

mydiqu 2016-11-22 04:32:29
int treedepth(b_tree bt){
int hl,hr,max;
if(bt!=null){
hl=treedepth(bt->left);
hr=treedepth(bt->right);//hr返回的是什么呀?为什么返回值要+1?
max=(hl>hr)?hl:hr;
return(max+1);
}
else
return 0;
}
...全文
200 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
July树树 2016-11-24
  • 打赏
  • 举报
回复
递归出的结果是当前结点的子结点的深度,因为自己也是一层,所以要加一返回给上一层。
小灸舞 版主 2016-11-23
  • 打赏
  • 举报
回复
分别求出左子树的深度、右子树的深度,两个深度的较大值+1即可求出二叉树深度
paschen 2016-11-22
  • 打赏
  • 举报
回复
+1还要算上根节点 函数用到了递归
赵4老师 2016-11-22
  • 打赏
  • 举报
回复
“给定一个小点的输入,完整单步跟踪(同时按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史)一遍。”是理解递归函数工作原理的不二法门! 递归函数关注以下几个因素 ·退出条件 ·参数有哪些 ·返回值是什么 ·局部变量有哪些 ·全局变量有哪些 ·何时输出 ·会不会导致堆栈溢出
mxway 2016-11-22
  • 打赏
  • 举报
回复
更正:hl是左子树高度,hr是右子树高度
mxway 2016-11-22
  • 打赏
  • 举报
回复
hr是左了树的高度,+1是因为当结点要算一层

69,364

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧