二叉搜索树和平衡二叉树问题汇总

Posted by 谢玄xx on April 24, 2022

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;

}