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

leetcode第一刷_Balanced Binary Tree

时间:2014-05-08 11:05:26      阅读:286      评论:0      收藏:0      [点我收藏+]

标签:blog   class   code   int   get   2014   

二叉平衡树好火啊,几乎每个公司的笔试题里都有它,考了好多次我都不会,挂笔试很有可能就是因为它,还有一个它的同伙叫二叉搜索树,貌似人气比它还要高一些。二叉平衡树是什么样的树呢,是每个节点的左右子树高度相差绝对值都不超过1。好,你说你终于回了,这不很简单吗,求一下根节点的左右字数高度,如果满足,他就是,否则就不是嘛。不是啊亲,要求是所有节点都满足这个条件,判断的时候必须每个节点都验证的!

扯了这么长,其实看看代码就明白了,怎么有种在贴吧发言要凑够15字的感觉。

int getHeight(TreeNode *root){
    if(root == NULL)    return 0;
    if(!root->left&&!root->right)   return 1;
    return max(getHeight(root->left), getHeight(root->right))+1;
}
class Solution {
public:
    bool isBalanced(TreeNode *root) {
        if(root == NULL)    return true;
        if(!root->left && !root->right) return true;
        if(isBalanced(root->left)&&isBalanced(root->right)&&abs(getHeight(root->left)-getHeight(root->right))<=1)
            return true;
        return false;
    }
};


leetcode第一刷_Balanced Binary Tree,布布扣,bubuko.com

leetcode第一刷_Balanced Binary Tree

标签:blog   class   code   int   get   2014   

原文地址:http://blog.csdn.net/u012792219/article/details/25276641

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