码迷,mamicode.com
首页 > 其他好文 > 详细

72. 平衡二叉树

时间:2020-02-21 00:02:46      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:color   代码   root   tde   img   nod   com   class   商业   

技术图片

 

 

class Solution {
public:
    bool ans = true;;
    bool isBalanced(TreeNode* root) {
        if(!root) return true;
        maxDepth(root);
        return ans;
    }
    
    int maxDepth(TreeNode* root)
    {
        if(root == NULL) return 0;
        //root的左、右子树的最大深度
        int leftDepth = maxDepth(root->left);
        int rightDepth = maxDepth(root->right);
        if(abs(leftDepth-rightDepth) > 1){
            ans =false;
        }
        //else ans=true;添加这行代码就会报错
       
        //返回的是左右子树的最大深度+1
        return max(leftDepth, rightDepth) + 1;
    }
};

 

 

上面的代码添加一行后报错,如下代码解释了为什么

 class Solution {
 public:
    #计算树的深度
    int treeDepth(TreeNode* root){
        if(!root) return 0;
        return max(treeDepth(root->left),treeDepth(root->right))+1;
    }
    bool isBalanced(TreeNode* root) {
        if(!root) return true;
        int left = treeDepth(root->left);
        int right = treeDepth(root->right);
        #判断左右子树是否满足条件,然后如果满足条件,判断子树的子树是否满足条件
        if(abs(left-right)<=1) return isBalanced(root->left)&&isBalanced(root->right);

        #如果不满足条件直接返回false
        else return false;
    }
};

作者:蜗牛壳
链接:https://www.acwing.com/solution/acwing/content/1779/
来源:AcWing
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

72. 平衡二叉树

标签:color   代码   root   tde   img   nod   com   class   商业   

原文地址:https://www.cnblogs.com/make-big-money/p/12338774.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!