LC110题——平衡二叉树
- 给定一个二叉树,判断它是否是高度平衡的二叉树。
bool isBalanced(TreeNode* root) {
if(!root) return true; //其实这道题的精髓就在于如果根节点为空,那么就是true,返回层数0
return judge(root) != -1;
}
int judge(TreeNode* root) {
if(!root) return 0;
int left = judge(root->left);
if(left == -1) return -1;
int right = judge(root->right);
if(right == -1) return -1;
if(abs(right - left) > 1) return -1;
return max(left, right) + 1;
}