110. Balanced Binary Tree
来源:互联网 发布:em算法的基本原理 编辑:程序博客网 时间:2024/05/22 07:46
Problem
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.
Solution
solution1
/** * 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) return true; int leftHeight = treeHeight(root->left); int rightHeight = treeHeight(root->right); if(abs(leftHeight - rightHeight) > 1) return false; return isBalanced(root->left) && isBalanced(root->right); } int treeHeight(TreeNode* root) { if(!root) return 0; int leftHeight = treeHeight(root->left); int rightHeight = treeHeight(root->right); return max(leftHeight,rightHeight) + 1; }};
solution2
/** * 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) return true; if(treeHeight(root) == -1) return false; return true; } int treeHeight(TreeNode* root) { if(!root) return 0; int leftHeight = treeHeight(root->left); if(leftHeight == -1) return -1; int rightHeight = treeHeight(root->right); if(rightHeight == -1) return -1; if(abs(leftHeight - rightHeight) > 1) return -1; return max(leftHeight,rightHeight) + 1; }};
0 0
- 110.Balanced Binary Tree
- 110. Balanced Binary Tree
- 110. Balanced Binary Tree
- 110. Balanced Binary Tree
- 110. Balanced Binary Tree
- 110. Balanced Binary Tree
- 110. Balanced Binary Tree
- 110. Balanced Binary Tree
- 110. Balanced Binary Tree
- 110. Balanced Binary Tree
- 110. Balanced Binary Tree
- 110. Balanced Binary Tree
- 110. Balanced Binary Tree
- 110. Balanced Binary Tree
- 110. Balanced Binary Tree
- 110. Balanced Binary Tree
- 110. Balanced Binary Tree
- 110. Balanced Binary Tree
- Ohana Cleans Up
- 【幻化万千戏红尘】qianfeng-Android-Day01-安卓历史及环境的搭建基础学习:
- super init重构 id 指针 NSObject指针 intancetype指针
- 【46-50】剑指offer
- Activity基础全面详解
- 110. Balanced Binary Tree
- 构造方法和static关键字的使用
- 根据布尔数组,显示出位置的内容,其中用+表示真,空格表示假
- 数据结构实验之图论八:欧拉回路
- Pro Android学习笔记(六六):安全和权限(3):Provider权限
- 数据结构实验之排序六:希尔排序
- Mock Server实践
- 【51-55】剑指offer
- POJ-1273-Drainage Ditches(网络最大流 标号法)