zoukankan      html  css  js  c++  java
  • leetcode第一刷_Balanced Binary Tree

    二叉平衡树好火啊。差点儿每一个公司的笔试题里都有它。考了好多次我都不会,挂笔试非常有可能就是由于它。另一个它的同伙叫二叉搜索树,貌似人气比它还要高一些。

    二叉平衡树是什么样的树呢。是每一个节点的左右子树高度相差绝对值都不超过1。好。你说你最终回了,这不非常easy吗,求一下根节点的左右字数高度,假设满足,他就是。否则就不是嘛。不是啊亲,要求是全部节点都满足这个条件,推断的时候必须每一个节点都验证的!

    扯了这么长。事实上看看代码就明确了,怎么有种在贴吧发言要凑够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;
        }
    };


  • 相关阅读:
    CSS权重
    object.create(null) 和 {}创建对象的区别
    CSS边框作图
    细说HTML头部标签
    利用a标签导出csv文件
    细说CSS伪类和伪元素
    HTML标签的权重
    《SPA设计与架构》之客户端路由
    《SPA设计与架构》之JavaScript模块化
    《SPA设计与架构》之MV*框架
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/6802559.html
Copyright © 2011-2022 走看看