1. 题目

实现一个函数,检查二叉树是否平衡。在这个问题中,平衡树的定义如下:任意一个节点,其两棵子树的高度差不超过 1。

示例 1:
给定二叉树 [3,9,20,null,null,15,7]3/ \9  20/  \15   7
返回 true 。示例 2:
给定二叉树 [1,2,2,3,3,null,null,4,4]1/ \2   2/ \3   3/ \
4   4
返回 false 。

2. 解题

class Solution {public:bool isBalanced(TreeNode* root) {bool ans = true;check(root, ans);return ans;}int check(TreeNode* root, bool& bal){if(!root || !bal)return 0;int l = check(root->left, bal);int r = check(root->right, bal);if(abs(l-r)>1)bal = false;return max(l,r)+1;}
};

程序员面试金典 - 面试题 04.04. 检查平衡性(二叉树高度)相关推荐

  1. 程序员面试金典 - 面试题 02.04. 分割链表

    1. 题目 编写程序以 x 为基准分割链表,使得所有小于 x 的节点排在大于或等于 x 的节点之前.如果链表中包含 x,x 只需出现在小于 x 的元素之后(如下所示).分割元素 x 只需处于" ...

  2. 编写函数判断一个数是否是回文数_程序员面试金典 - 面试题 01.04. 回文排列

    题目难度: 简单 原题链接 题目描述 给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一. 回文串是指正反两个方向都一样的单词或短语.排列是指字母的重新排列. 回文串不一定是字典当中的单词. ...

  3. 程序员面试金典 - 面试题 16.04. 井字游戏(计数)

    1. 题目 设计一个算法,判断玩家是否赢了井字游戏.输入是一个 N x N 的数组棋盘,由字符" ","X"和"O"组成,其中字符" ...

  4. 程序员面试金典 - 面试题 05.04. 下一个数(线性扫描)

    文章目录 1. 题目 2. 解题 2.1 STL 2.2 线性扫描 2.3 位运算 1. 题目 下一个数.给定一个正整数,找出与其二进制表达式中1的个数相同且大小最接近的那两个数(一个略大,一个略小) ...

  5. 程序员面试金典 - 面试题 17.04. 消失的数字(数学/位运算)

    1. 题目 数组 nums 包含从0到n的所有整数,但其中缺了一个. 请编写代码找出那个缺失的整数.你有办法在O(n)时间内完成吗? 注意:本题相对书上原题稍作改动 示例 1: 输入:[3,0,1] ...

  6. 程序员面试金典 - 面试题 01.04. 回文排列(哈希map)

    1. 题目 给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一. 回文串是指正反两个方向都一样的单词或短语.排列是指字母的重新排列. 回文串不一定是字典当中的单词. 示例1: 输入:&quo ...

  7. 程序员面试金典 - 面试题 08.13. 堆箱子(DP)

    1. 题目 堆箱子.给你一堆n个箱子,箱子宽 wi.深 di.高 hi. 箱子不能翻转,将箱子堆起来时,下面箱子的宽度.高度和深度必须大于上面的箱子. 实现一种方法,搭出最高的一堆箱子.箱堆的高度为每 ...

  8. 程序员面试金典 - 面试题 17.08. 马戏团人塔(最长上升子序 DP/二分查找)

    文章目录 1. 题目 2. 解题 2.1 超时解 2.2 二分查找 1. 题目 有个马戏团正在设计叠罗汉的表演节目,一个人要站在另一人的肩膀上.出于实际和美观的考虑,在上面的人要比下面的人矮一点且轻一 ...

  9. 程序员面试金典 - 面试题 10.11. 峰与谷

    题目难度: 中等 原题链接 今天继续更新程序员面试金典系列, 大家在公众号 算法精选 里回复 面试金典 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 在一个整数数组中,"峰& ...

  10. 程序员面试金典 - 面试题 10.03. 搜索旋转数组

    题目难度: 中等 原题链接 今天继续更新程序员面试金典系列, 大家在公众号 算法精选 里回复 面试金典 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 搜索旋转数组.给定一个排序后的数组 ...

最新文章

  1. LSTM终获「正名」,IEEE 2021神经网络先驱奖授予LSTM提出者Sepp Hochreiter
  2. 小米7的传闻:这是我们迄今为止知道的
  3. UOJ228:基础数据结构练习题——题解
  4. 标识位:可以用以确定鼠标点击的是哪一个按钮或者是文本框
  5. HAproxy - 铁钉 - 51CTO技术博客
  6. ubuntu xfce4终端注销命令
  7. android蓝牙通信_使用Arduino构建OLED显示屏与Android手机接口的智能手表
  8. MySQL关于时间设置的注意事项
  9. JDBCUtils——C3P0
  10. (转)word2vec前世今生
  11. 打通 C++ 和 C# 关于 COM 组件互相调用的任督二脉
  12. 详解C# 匿名对象(匿名类型)、var、动态类型 dynamic
  13. DOSBox的安装及使用
  14. Arcgis3_地图符号制作与地图数据符号化
  15. 2048游戏编程C语言,使用C语言编写一个2048游戏
  16. 【OpenCV入门教程之五】 分离颜色通道 多通道图像混合
  17. MQTT协议之订阅及发布(使用paho-mqtt-client或mqttv3实现)
  18. 【Java类和对象】
  19. pythonbmi代码_python用代码实现体质指数BMI测试功能
  20. VS无法使用宏定义#define解决方案

热门文章

  1. 评分系统 java_C自动评分系统
  2. 华为手机连电脑_手机、电脑无网高速互传!华为神技逆天
  3. 宏定义函数container_of的解释
  4. 【转】spring之任务调度
  5. echarts自学笔记
  6. spring AOP自定义注解方式实现日志管理
  7. Linux中source是什么指令?
  8. [设计模式]6. C++与职责链模式(chain of rsponsibility pattern)
  9. 微机原理8086CPU
  10. 安装一直初始化_3D max 软件安装问题大全