LeetCode 110:Balanced Binary Tree
2015-12-14 22:39
344 查看
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.
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.
//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; } else { int lH = getHeight(root->left); int rH = getHeight(root->right); if (lH - rH <= 1 && lH - rH >= -1) { return isBalanced(root->left) && isBalanced(root->right); } else return false; } } int getHeight(TreeNode* root){ if (root == NULL) { return 0; } else { if (root->left == NULL) { return getHeight(root->right) + 1; } else if (root->right == NULL) { return getHeight(root->left) + 1; } else { int l = getHeight(root->left); int r = getHeight(root->right); return l < r ? (r + 1) : (l + 1); } } } };
相关文章推荐
- 2015年书单
- Hibernate进行对象的增删改查
- Personal Website
- JavaScript 闭包
- JavaScript This的用法
- iOS开发之核心转场动画
- html文字垂直居中
- call by value 和call by reference区别
- 静态页面参数传递&回调函数写法&快速排序的实现方法
- 数据库迁移:MySQL->PostgreSQL注意问题汇总(基于项目并不完整)
- Python 多线程
- 从头到尾写SQL(三)
- JavaScript 执行上下文环境
- JavaScript 继承
- NGUI 背包系统的拖拽
- iOS开发之开机经典滑动动画
- qt之VS2008编译
- 初学者如何进行代码重构
- oop-Inheritance & Polymorphism
- 架构 Roadmap 笔记分享