判断二叉树是否为平衡二叉树

判断二叉树是否为平衡二叉树

http://www.nowcoder.com/questionTerminal/f4523caf0205476985516212047ac8e7

后序遍历:

class Solution {
public:
    /**
     *
     * @param root TreeNode类
     * @return bool布尔型
     */
    bool isBalanced(TreeNode* root) {
        // write code here
        if (!root) return true;
        bool res = true;
        postOrder(root, res);
        return res;
    }

    int postOrder(TreeNode *root, bool &res) {
        if (!root || !res) return 0;
        if (!root->left && !root->right) return 1;
        int left = 1 + postOrder(root->left, res);
        int right = 1 + postOrder(root->right, res);
        int minus = left - right < 0 ? right - left : left - right;
        if (minus > 1) res = false;
        return left > right ? left : right;
    }
};
刷遍天下无敌手 文章被收录于专栏

秋招刷题历程

全部评论

相关推荐

淬月星辉:专利是什么?至少描述一下吧,然后把什么计算机二级、普通话这种拉低格调的证书删掉,不然hr以为你没东西写
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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