[leetcode]110. Balanced Binary Tree
2016-10-25 21:34
471 查看
题目链接: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.
Solution 1:
Solution 2:
class Solution {
public:
int depth(TreeNode *root) {
if (root == NULL) {
return 0;
}
int left = depth(root->left);
int right = depth(root->right);
if (left == -1 || right == -1 || abs(left - right) > 1) {
return -1;
}
return max(left, right) + 1;
}
/**
* @param root: The root of binary tree.
* @return: True if this Binary tree is Balanced, or false.
*/
bool isBalanced(TreeNode *root) {
return depth(root) != -1;
}
};
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 1:
class Solution { public: bool isBalanced(TreeNode * root) { if(root==NULL) return true; return run(root); } bool run(TreeNode * root) { int l=0,r=0; l=height(root->left); r=height(root->right); if(abs(l-r)<=1 && isBalanced(root->left) && isBalanced(root->right)) return true; return false; } int height(TreeNode *root) { if(root==NULL) return 0; int left=height(root->left); int right=height(root->right); return left>right?left+1:right+1; } };
Solution 2:
class Solution {
public:
int depth(TreeNode *root) {
if (root == NULL) {
return 0;
}
int left = depth(root->left);
int right = depth(root->right);
if (left == -1 || right == -1 || abs(left - right) > 1) {
return -1;
}
return max(left, right) + 1;
}
/**
* @param root: The root of binary tree.
* @return: True if this Binary tree is Balanced, or false.
*/
bool isBalanced(TreeNode *root) {
return depth(root) != -1;
}
};
相关文章推荐
- 二叉树递归问题 leetcode 572. Subtree of Another Tree & leetcode 110. Balanced Binary Tree
- LeetCode-110.Balanced Binary Tree
- [LeetCode] 110. Balanced Binary Tree ❤
- leetcode-java-110. Balanced Binary Tree
- LeetCode 110. Balanced Binary Tree
- LeetCode 110. Balanced Binary Tree
- [LeetCode]110.Balanced Binary Tree
- LeetCode110. Balanced Binary Tree
- LeetCode 110. Balanced Binary Tree
- [leetcode: Python] 110. Balanced Binary Tree
- leetcode 110. Balanced Binary Tree
- 【Leetcode】110. Balanced Binary Tree
- 【平衡二叉树】leetcode 110. Balanced Binary Tree
- leetcode 110. Balanced Binary Tree
- [leetcode] 110. Balanced Binary Tree
- leetcode 110. Balanced Binary Tree
- leetcode-110. Balanced Binary Tree
- [LeetCode]110. Balanced Binary Tree
- leetcode 110. Balanced Binary Tree DFS
- LeetCode 110. Balanced Binary Tree