Leetcode[110]-Balanced Binary Tree
2016-01-28 10:20
405 查看
Link: https://leetcode.com/problems/balanced-binary-tree/
Given a binary tree, determine if it is height-balanced.
For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.
推断一棵树是否属于平衡二叉树
推断主节点的左右节点深度大小差,假设不在【-1,1】内。返回false。否则。继续推断其左右节点是否属于平衡二叉树;
仅仅要有不满足的。就返回false
Code(C++):
Given a binary tree, determine if it is height-balanced.
For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.
推断一棵树是否属于平衡二叉树
推断主节点的左右节点深度大小差,假设不在【-1,1】内。返回false。否则。继续推断其左右节点是否属于平衡二叉树;
仅仅要有不满足的。就返回false
Code(C++):
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: bool isBalanced(TreeNode* root) { if(root == NULL) return true; int ldepth = getDepth(root->left); int rdepth = getDepth(root->right); if(ldepth - rdepth > 1 || ldepth - rdepth < -1) return false; return isBalanced(root->left) && isBalanced(root->right); } //get node's depth int getDepth(TreeNode *root){ if(root==NULL) return 0; int ldepth=0,rdepth=0; ldepth = getDepth(root->left); rdepth = getDepth(root->right); return ldepth > rdepth ? ldepth+1:rdepth+1; } };
相关文章推荐
- C# 类的序列化和反序列化
- C语言中的指针学习(小黑板)
- 两个数组找相同
- iOS下载大文件原理解析一
- win7用控制台本地组策略自定义程序(任意文件)开机自动启动
- 智能硬件公司估值集体缩水 资本疯狂涌入VR
- SQL 查询 日期
- 复杂对象的组装与创建——建造者模式
- LeetCode Text Justification
- 基于SMB协议的共享文件读写 博客分类: Java
- 加锁测试
- [转]Hibernate时间总结
- 吉他如何扫弦(下)
- frame属性
- Java四种线程池的使用
- 拼图响应式前端框架版响应式后台正式发布。
- Android Design Support控件之DrawerLayout简单使用
- Android TextUtils类 (字符串相关)
- 供应正品RINT-5513C
- openwrt-无线配置