mirror of
https://github.com/ShusenTang/LeetCode.git
synced 2024-09-02 14:20:01 +00:00
695 B
695 B
110. Balanced Binary Tree
思路
一棵非空树是平衡二叉树的充要条件是:
- 其左右子树的高相差不超过1;
- 且左右子树都是平衡二叉树。
因此是一个递归算法。
C++
class Solution {
private:
int getDepth(TreeNode *root){
if(root == NULL) return 0;
return 1 + max(getDepth(root -> left), getDepth(root -> right));
}
public:
bool isBalanced(TreeNode* root) {
if(root == NULL) return true;
return (abs(getDepth(root -> left) - getDepth(root -> right)) <= 1) && isBalanced(root -> left) && isBalanced(root -> right);
}
};