面试经典(15)--判定是否是平衡二叉树
来源:互联网 发布:中国注册的顶级域名 编辑:程序博客网 时间:2024/06/06 10:40
题目描述: 输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一个平衡二叉树。
分析与解法:首先想到后续遍历二叉树。我们需要分析算法的参数问题。因为是后续遍历,先遍历左子树,再遍历右子树,最后遍历父节点,然后我们计算父节点的深度,计算父节点的深度需要使用左右子树的深度,所以可以使用指针参数返回子树的深度。
代码如下:
bool Balanced(BinaryNode *pRoot,int *depth){if(pRoot==NULL){*depth=0;return true;}int left=0,right=0;if(Balanced(pRoot->left,&left) && Balanced(pRoot->right,&right)){if(left-right<=1 && left-right>=-1){*depth=left>right?left+1:right+1;return true;}}return false;}
0 0
- 面试经典(15)--判定是否是平衡二叉树
- 笔试面试算法经典--判断二叉树是否是平衡二叉树(Java)
- 求二叉树的深度,判定二叉树是否是平衡二叉树(java)
- 程序员面试经典--检查二叉树是否平衡
- 平衡二叉树判定
- 平衡二叉树判定
- (二叉树)求树的最小深度,平衡树的判定,判定树是否相同,判定对称树
- 判断二叉树是否是平衡树
- 判断二叉树是否是平衡树
- 判断二叉树是否是平衡树
- 判断一颗树是否是平衡二叉树
- 判断是否是平衡二叉树
- 判断一棵树是否是平衡二叉树
- 判断是否是平衡二叉树
- 判断二叉数是否是平衡树
- 判断是否是平衡二叉树
- Leetcode110 判断是否是平衡二叉树
- 判断一棵树是否是平衡二叉树
- Cannot get a connection, pool error Timeout waiting for idle object解决方法
- robot framework 使用二:简单实例体验
- 【Linux软件安装】Ubuntu12.04: Xilinx ISE 14.6
- 2014考研 浙大CS、MSE 小记
- Tcl/Tk 教學文件
- 面试经典(15)--判定是否是平衡二叉树
- boost graph read_graphml 要解析graph property(图的属性)要自己给boost graph加代码
- MVC中View获取字段的名字
- RUZ HID IAO WUY IZHU #
- Mongodb启动命令mongod参数说明
- Hadoop家族学习路线图
- VS2008下最新X264(svn 2009.9)编译不过的解决办法
- android与SQLite的小总结
- 华为3C联通移动一键刷入官方recovery,解决root后如何刷回原版系统,刷机后无法进入系统的问题