题解 | #平衡二叉树#

平衡二叉树

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

思路:递归

当前树是平衡二叉树的条件:
1、空指针
2、左子树和右子树都是平衡二叉树左子树和右子树的深度差的绝对值小于等于1

代码

class Solution {
public:
    int ComputeDepth(TreeNode* pNode){
        if(pNode==nullptr) {
            return 0;
        }
        int left_depth = ComputeDepth(pNode->left);
        int right_depth = ComputeDepth(pNode->right);
        return max(left_depth, right_depth)+1;
    }

    bool IsBalanced_Solution(TreeNode* pRoot) {
        if(pRoot==nullptr) return true;

        auto left_depth = ComputeDepth(pRoot->left);
        auto right_depth = ComputeDepth(pRoot->right);
        auto abs_ = abs(left_depth - right_depth);
        return (abs_<=1 && IsBalanced_Solution(pRoot->left) && IsBalanced_Solution(pRoot->right));


    }
};
全部评论

相关推荐

10-05 23:02
东北大学 Java
我说句实话啊:那时候看三个月培训班视频,随便做个项目背点八股,都能说3 40w是侮辱价
点赞 评论 收藏
分享
offer多多的六边形战士很无语:看了你的博客,感觉挺不错的,可以把你的访问量和粉丝数在简历里提一下,闪光点(仅个人意见)
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务