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;
    }
};
leetcode第一刷_Balanced Binary Tree的更多相关文章
- leetcode第一刷_Construct Binary Tree from Preorder and Inorder Traversal
		
构造方式跟中序与后序全然一样,并且一般都习惯正着来,所以更简单. 代码是之前写的,没实用库函数,不应该. TreeNode *buildIt(vector<int> &preord ...
 - leetcode第一刷_Construct Binary Tree from Inorder and Postorder Traversal
		
这道题是为数不多的感觉在读本科的时候见过的问题. 人工构造的过程是如何呢.兴许遍历最后一个节点一定是整棵树的根节点.从中序遍历中查找到这个元素,就能够把树分为两颗子树,这个元素左側的递归构造左子树,右 ...
 - leetcode第一刷_Validate Binary Search Tree
		
有了上面的教训,这道题就简单多了,什么时候该更新pre是明白的了,倒是有个细节,二叉搜索树中是不同意有相等节点的,所以题目的要求用黑体字标明了.写的时候注意就能够了. class Solution { ...
 - leetcode第一刷_Unique Binary Search Trees
		
这道题事实上跟二叉搜索树没有什么关系,给定n个节点,让你求有多少棵二叉树也是全然一样的做法.思想是什么呢,给定一个节点数x.求f(x),f(x)跟什么有关系呢,当然是跟他的左右子树都有关系.所以能够利 ...
 - leetcode第一刷_Add Binary
		
二进制相加,本质上就是大整数加法,有关大整数加法我的舍友教过我一个非常好的方法,先用一个int数组保存结果,将两个数相应位置相加,所有加完后.再统一处理进位的问题.这种方法相同适用于大整数的乘法. 这 ...
 - [LeetCode] Serialize and Deserialize Binary Tree 二叉树的序列化和去序列化
		
Serialization is the process of converting a data structure or object into a sequence of bits so tha ...
 - LeetCode:Minimum Depth of Binary Tree,Maximum Depth of Binary Tree
		
LeetCode:Minimum Depth of Binary Tree Given a binary tree, find its minimum depth. The minimum depth ...
 - LeetCode——Serialize and Deserialize Binary Tree
		
Description: Serialization is the process of converting a data structure or object into a sequence o ...
 - Leetcode 笔记 110 - Balanced Binary Tree
		
题目链接:Balanced Binary Tree | LeetCode OJ Given a binary tree, determine if it is height-balanced. For ...
 
随机推荐
- java中为什么要用多线程
			
我们可以在计算机上运行各种计算机软件程序.每一个运行的程序可能包括多个独立运行的线程(Thread).线程(Thread)是一份独立运行的程序,有自己专用的运行栈.线程有可能和其他线程共享一些资源,比 ...
 - 【莫队算法】【权值分块】bzoj3809 Gty的二逼妹子序列
			
如题. #include<cstdio> #include<algorithm> #include<cmath> using namespace std; int ...
 - 【强联通分量缩点】【最长路】【spfa】CH Round #59 - OrzCC杯NOIP模拟赛day1 队爷的讲学计划
			
10分算法:对于城市网络为一条单向链的数据, 20分算法:对于n<=20的数据,暴力搜出所有的可能路径. 结合以上可以得到30分. 60分算法:分析题意可得使者会带着去的城市也就是这个城市所在强 ...
 - Java小问题的解决方法系列
			
1)IDEA中文乱码,解决方法:http://blog.csdn.net/zht666/article/details/8953516 2)卸载OpenJdk,http://my.oschina.ne ...
 - IIS8集成模式下打开静态资源被aspx处理程序处理,StaticFileModule失效问题分析
			
问题描述: 打开js,css,jpg之类的静态资源文件触发了asp.net mvc的权限认证,并不是直接返回静态内容 问题分析: StaticFileModule 失效 ,可能是文件权限问题 问题解决 ...
 - 【MyEcplise】导入项目后,会定时弹出一下错误MyEcplise tern was unable to complete your request in time.This couble happen if your project contains several large javaScript libraies.
			
Myecplise弹出错误如下: 错误代码: MyEcplise tern was unable to complete your request in time.This couble happen ...
 - nginx+php-fpm页面显示空白的解决方法
			
在nginx与php的环境中,配置了一个wordpress,访问时发现php的页面一直显示空白,起初以为是权限问题,将权限改成755后还是不行. 然后,开启nginx和php的日志,但在日志里也没 ...
 - Java计算两个日期相差的天数
			
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; impor ...
 - elasticsearch term 查询之一
			
1.前言 term级别查询将按照存储在倒排索引中的确切字词进行操作,这些查询通常用于数字,日期和枚举等结构化数据,而不是全文本字段. 或者,它们允许您制作低级查询,并在分析过程之前进行. term级别 ...
 - Linux源码编译安装MySQL5.7
			
目录[-] 一.环境准备: 二.升级系统: 三.做一些准备工作(以下Linux命令均在su到root用户操作): 四.开始编译安装mysql-5.7.9: 一.环境准备: 我尝试过以下环境都是能成功的 ...