天天看点

牛客网——剑指offer 平衡二叉树

题目描述

输入一棵二叉树,判断该二叉树是否是平衡二叉树。

int is_avl(TreeNode* root,int* hight)
    {
        int flag1,flag2;
        if(root == NULL) return 1;
        flag1 = is_avl(root->left,hight);
        flag2 = is_avl(root->right,hight);
        
        if(abs(flag1-flag2) > *hight)
            *hight = abs(flag1-flag2);
        
        return flag1>flag2?flag1+1:flag2+1;
    }
    
    bool IsBalanced_Solution(TreeNode* pRoot) {
        int hight = 0;
        is_avl(pRoot,&hight);
        
        if(hight > 1) return false;
        return true;
    }