1.平衡二叉树

树中的任意一个节点,他的左子树和右子树的高度差不超过1

2. 代码实现

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/
class Solution {public int maxDepth(TreeNode root){if(root == null){return 0;}int leftDepth = maxDepth(root.left);int rightDepth = maxDepth(root.right);return 1 + (leftDepth > rightDepth? leftDepth : rightDepth);
}public boolean isBalanced(TreeNode root) {if(root == null){return true;}int leftDepth = maxDepth(root.left);int rightDepth = maxDepth(root.right);if(leftDepth - rightDepth > 1 || rightDepth - leftDepth > 1){return false;}return isBalanced(root.left) && isBalanced(root.right);}
}

这个思路很好理解
如果是空树,算平衡
如果没有子树,也算平衡
求一下左右子树的高度,判断一下差值是否小于1,不满足return false
递归判定左子树右子树是不是也是平衡

判断一个树是否是平衡二叉树相关推荐

  1. 【IT笔试面试题整理】判断一个树是否是另一个的子树

    [试题描述]定义一个函数,输入判断一个树是否是另一个对的子树 You have two very large binary trees: T1, with millions of nodes, and ...

  2. 判断一个树是否为二叉查找树

    一开始还以为这个问题很简单,平时练习的时候也没有多在意,直到...百度二面后一个算法加面以及字节跳动视频面都出现了这个问题,才发现并不是想象中的那么简单. 找了别人的几篇博客看了看,发现别人好像都有过 ...

  3. 用python判断一个树是否为素数(质数)

    输入一个数,判断其是否为素数(除了自己和1,没有别的因子) while True:     无限循环判断     m = int(raw_input('请输入一个整数:'))     if m > ...

  4. 利用KMP算法判断一个树是否是另一个树的子树

    方法:利用KMP算法,将两个树进行序列化,分别遍历一遍树,得到两个字符串,时间复杂度是O(n) KMP问题: String1,String2,如果String2为String1的子串,则返回Strin ...

  5. [二叉树] 判断一个二叉树是否是平衡(剑指offer39)

    [试题描述]定义一个函数,输入一个链表,判断链表是否存在环路 平衡二叉树,又称AVL树.它或者是一棵空树,或者是具有下列性质的二叉树:它的左子树和右子树都是平衡二叉树,且左子树和右子树的高度之差之差的 ...

  6. 判断一个图是否为树(有向图以及无向图)

    整理的算法模板合集: ACM模板 目录 判断一个图是否为树 1. 无向图(hdu 1272 小希的迷宫) 2. 有向图(hdu 1325 Is It A Tree?) 判断一个图是否为树 1. 无向图 ...

  7. 数据结构与算法之二叉树的序列化和反序列化及判断一棵树是否为平衡二叉树

    数据结构与算法之二叉树的序列化和反序列化及判断一棵树是否为平衡而二叉树 目录 二叉树的序列化和反序列化 判断一棵树是否为平衡而二叉树 1. 二叉树的序列化和反序列化 1. 递归版本序列化和反序列化 代 ...

  8. 【数据结构】-图-判断一个无向图是否是一棵树

    思路:判断一个无向图是否是一棵树,只需要判断该图是否是一个包含n个顶点的连通子图且边数为n-1,只要这两个条件都满足,那么就是一棵树. 因此我们可以采用深度遍历,若图连通,那么只要一次深度遍历就可以遍 ...

  9. 每天一道LeetCode-----计算二叉树的最大深度及最小深度,判断二叉树是否是高度平衡二叉树

    Maximum Depth of Binary Tree 原题链接Maximum Depth of Binary Tree 计算给定二叉树的最大深度,最大深度指从根节点到叶子节点的最长路径上的节点个数 ...

  10. 如何去判断一个面试者的深度学习水平?

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 编辑:Amusi  |  来源:知乎 https://www.zhi ...

最新文章

  1. pandas.core.frame.DataFrame是什么数据结构,为什么要如此取值  [ ]中嵌套[ ]
  2. SQL学习教程:基础教程高级教程
  3. ASP.NET查询页面设置form的action属性只弹出一个页面,并且每次将页面设置到最前...
  4. plsql developer 创建表空间和临时表
  5. MABN论文的译读笔记
  6. GitHub 发布 2018 年开源项目趋势预测:跨平台、深度学习增长最快!
  7. c语言50个小程序,C语言50小程序.doc
  8. 2016阿里技术论坛,阿里技术大神的互联网趋势分享
  9. java编译速度_[译] Kotlin VS Java:编译速度大比拼
  10. Requirement-Driven Linux Shell Programming
  11. SQL 循环语句 while 介绍 实例
  12. c4d怎么导入图片描图建模_C4D:你一定想知道的线描效果制作方法
  13. unity 角度限制_Unity3D实现摄像机镜头移动并限制角度
  14. 有关《家》的经典歌曲_著名音乐人-二十首最棒的励志歌曲推荐
  15. GRYZ 模 拟 赛 系 列 Xxy 的车厢调度
  16. 一辈子交186万五险一金!退休你能拿回多少?算完惊呆……
  17. Hive学习笔记(五)向表中装载数据
  18. 如何恢复微信删除的聊天记录
  19. 山东大学2018-2019年第二学期 数据仓库数据挖掘 期末考试题 回忆版
  20. 背景建模技术(四):视频分析(VideoAnalysis)模块

热门文章

  1. websocket 应用实例
  2. springboot日志框架
  3. fastDFS文件系统安装
  4. SQLServer之创建Transact-SQL DDL触发器
  5. 简易图解N合1集成安装光盘制作教程二
  6. Atitit 表达式原理 语法分析 原理与实践 解析java的dsl  递归下降是现阶段主流的语法分析方法...
  7. Oracle Solaris 11 11/11 新增功能
  8. java之模块学习-JAVA的IO流
  9. Vue知识点笔记(基础篇)
  10. Linux下部署WordPress