判断二叉树是不是平衡二叉树
来源:互联网 发布:java comp env jdbc 编辑:程序博客网 时间:2024/05/24 11:14
1.问题描述
输入一棵二叉树的根结点,判断该树是不是平衡二叉树。如果某二叉树中任意结点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。(来自《剑指offer》)
2.分析
我们可以采用后续遍历,在遍历根结点之前就可以得到左右子树的深度及是不是一颗平衡二叉树。然后在根据左右子树的深度差值来判断这棵树是不是一棵平衡二叉树。
3.代码
int IsBalanced(TreeNode* head,int* depth){ if (head == NULL) { *depth = 0; return 1; } int left; int right; if (IsBalanced(head->lChild,&left) && IsBalanced(head->rChild,&right)) { int diff = left - right; if (diff <= 1 || diff >= -1) { *depth = left > right ? left + 1 : right + 1; return 1; } } return 0; }
0 0
- 判断二叉树是不是平衡
- 判断二叉树是不是平衡
- 判断二叉树是不是平衡[
- 判断二叉树是不是平衡
- 判断二叉树是不是平衡
- 判断是不是平衡二叉树
- 判断二叉树是不是平衡
- 判断二叉树是不是平衡
- 判断二叉树是不是平衡二叉树
- 判断二叉树是不是平衡二叉树
- 判断二叉树是不是平衡二叉树
- 判断二叉树是不是平衡二叉树
- 判断二叉树是不是平衡二叉树
- 判断二叉树是不是平衡二叉树
- 判断二叉树是不是平衡二叉树
- 判断二叉树是不是平衡二叉树
- 判断二叉树是不是平衡二叉树
- 判断二叉树是不是平衡二叉树
- android之弹出框AlertDialog
- String,StringBuffer,StringBuild的区别
- shell脚本
- 没有配置JKD环境变量也能在eclipse正常运行java文件
- 一个关于检索薪水高于部门平均值的sql文
- 判断二叉树是不是平衡二叉树
- Git从创建到推送到远程版本库
- Hbase常见异常
- C++操作Redis数据库
- GO语言时间格式化,奇葩得不想说了
- 好记性不如烂笔头
- 编译器的工作过程
- 解决get方法传递URL参数中文乱码问题
- 单点登录配置