题解 | #判断是不是平衡二叉树#

判断是不是平衡二叉树

https://www.nowcoder.com/practice/8b3b95850edb4115918ecebdf1b4d222

class Solution {

private:
    int calDepth(TreeNode* root){
        if(root == nullptr) return 0;
        int ld = calDepth(root->left);
        int rd = calDepth(root->right);
        int depth = (ld > rd) ? ld+1 : rd+1;
        return depth;
    }
    bool Helper(TreeNode* pRoot){
        if(pRoot == nullptr) return true;

        
        if(pRoot->left == nullptr && pRoot->right == nullptr){
            return true;
        }
        else{
            int leftDepth = calDepth(pRoot->left);
            int rightDepth = calDepth(pRoot->right);
            if(leftDepth - rightDepth <= 1 && 
                leftDepth - rightDepth >= -1){
                    return Helper(pRoot->left) && Helper(pRoot->right);
                }
        }

        return false;
    }
public:
    bool IsBalanced_Solution(TreeNode* pRoot) {
        if(pRoot == nullptr) return true;

        return Helper(pRoot);
    }
};

全部评论

相关推荐

程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
10-31 20:07
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务