110.Balanced Binary Tree Leetcode解题笔记
110.Balanced Binary Tree
Given a binary tree, determine if it is height-balanced.
For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.
很早以前做的了 准备把这些笔记都转移到博客园上 其一加深理解 其二再打一遍也有好处
这题大意 给出一个二叉树 判断这个二叉树 是否平衡 平衡的条件为 任意一个节点的左子树和右子树高度相差不超过一
思路很简单 首先要有一个得出树高度的函数
节点为空 树高度为零 否则树的高度为左子树的高度和右子树的高度中最大的那个加一,加一的意思就是加上自身这个节点的高度
判断左子树和右子树高度是否相差大于一 如果大于一 返回一个标记数 可以用-1标记
直接码代码
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public boolean isBalanced(TreeNode root) {
return height(root)!=-1;
}
public int height(TreeNode root){
if(root==null)
return 0;
int left=height(root.left);
int right=height(root.right);
if(left==-1||right==-1||Math.abs(left-right)>1)
return -1;
return Math.max(left,right)+1;
}
}
一次过了

看看 detail

2ms 感觉有点长了 我觉得应该是0ms级别的
惯例 学习别人的优秀解法 看看discuss 里最受欢迎的那个
public class Solution {
public boolean isBalanced(TreeNode root) {
if(null == root) {
return true;
}
return Math.abs(height(root.left) - height(root.right)) < 2 && isBalanced(root.left) && isBalanced(root.right);
}
public int height(TreeNode root) {
if(null == root) {
return 0;
}
return 1 + Math.max(height(root.left), height(root.right));
}
}
恩 其实和我的思路一样 只是写法不同 ~
110.Balanced Binary Tree Leetcode解题笔记的更多相关文章
- 110. Balanced Binary Tree - LeetCode
Question 110. Balanced Binary Tree Solution 题目大意:判断一个二叉树是不是平衡二叉树 思路:定义个boolean来记录每个子节点是否平衡 Java实现: p ...
- Leetcode 笔记 110 - Balanced Binary Tree
题目链接:Balanced Binary Tree | LeetCode OJ Given a binary tree, determine if it is height-balanced. For ...
- C++版 - 剑指offer 面试题39:判断平衡二叉树(LeetCode 110. Balanced Binary Tree) 题解
剑指offer 面试题39:判断平衡二叉树 提交网址: http://www.nowcoder.com/practice/8b3b95850edb4115918ecebdf1b4d222?tpId= ...
- [LeetCode] 110. Balanced Binary Tree ☆(二叉树是否平衡)
Balanced Binary Tree [数据结构和算法]全面剖析树的各类遍历方法 描述 解析 递归分别判断每个节点的左右子树 该题是Easy的原因是该题可以很容易的想到时间复杂度为O(n^2)的方 ...
- [LeetCode] 110. Balanced Binary Tree 解题思路
Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced binary ...
- 【一天一道LeetCode】#110. Balanced Binary Tree
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given a ...
- [LeetCode] 110. Balanced Binary Tree 平衡二叉树
Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced binary ...
- Leetcode 110 Balanced Binary Tree 二叉树
判断一棵树是否是平衡树,即左右子树的深度相差不超过1. 我们可以回顾下depth函数其实是Leetcode 104 Maximum Depth of Binary Tree 二叉树 /** * Def ...
- [LeetCode]题解(python):110 Balanced Binary Tree
题目来源 https://leetcode.com/problems/balanced-binary-tree/ Given a binary tree, determine if it is hei ...
随机推荐
- TransactionScope类的使用
如果在C#中使用TransactionScope类(分布式事务),则须注意如下事项:1.在项目中引用using System.Transactions命名空间(先要在添加net组件的引用); 2.具体 ...
- 【转】Selenium 面试题总结(乙醇Blog记录的面试题)
原文链接:http://www.cnblogs.com/tsbc/p/4922368.html ###selenium中如何判断元素是否存在? - isElementPresent ###sele ...
- Python:常见操作字符串的函数
Python中提供了很多操作字符串的函数: string = "hello, my dear python!" string.capitalize() #将字符串中的第一个字母大写 ...
- cookie 和session 的区别
假如我填好了淘宝的用户名密码,点击登录,浏览器客户端像服务器端发送请求,这时服务器端看这个用户是第一次登陆,session会让客户端这个浏览器生成个cookie,并给cookie一个session i ...
- HealthKit的使用
一.项目中关联HealthKit框架 1.在Capabilities选项中打开HealthyKit选项 HealthKit关联路径 首先填写好你项目的Bundle Identifier并且选好Team ...
- a标签中href的触发
采用.trigger('click')没有效果,是用的$('xx')[0].click()来触发的.不知道为什么trigger不行,望指导.
- windows 下 gvim打开默认全屏显示
在_vimrc文件中加入如下配置即可: autocmd GUIEnter * simalt ~x
- InstallShield Limited Edition for Visual Studio 2013 图文教程
http://www.wuleba.com/?p=23892 原文链接
- npm -v 一直闪
一直闪一般是配置搞错了 参考: windows安装完nodejs后做了相关环境变量配置后,cmd输入npm没反应啊 就光标一直闪 node是正常的 或者 https://segmentfault.co ...
- JSTL标准标签库 (使用foreach打印集合)
<%@page import="java.util.*"%><%@ page language= "java" contentType=&qu ...