程序员面试金典 - 面试题 04.04. 检查平衡性(二叉树高度)
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. 检查平衡性(二叉树高度)相关推荐
- 程序员面试金典 - 面试题 02.04. 分割链表
1. 题目 编写程序以 x 为基准分割链表,使得所有小于 x 的节点排在大于或等于 x 的节点之前.如果链表中包含 x,x 只需出现在小于 x 的元素之后(如下所示).分割元素 x 只需处于" ...
- 编写函数判断一个数是否是回文数_程序员面试金典 - 面试题 01.04. 回文排列
题目难度: 简单 原题链接 题目描述 给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一. 回文串是指正反两个方向都一样的单词或短语.排列是指字母的重新排列. 回文串不一定是字典当中的单词. ...
- 程序员面试金典 - 面试题 16.04. 井字游戏(计数)
1. 题目 设计一个算法,判断玩家是否赢了井字游戏.输入是一个 N x N 的数组棋盘,由字符" ","X"和"O"组成,其中字符" ...
- 程序员面试金典 - 面试题 05.04. 下一个数(线性扫描)
文章目录 1. 题目 2. 解题 2.1 STL 2.2 线性扫描 2.3 位运算 1. 题目 下一个数.给定一个正整数,找出与其二进制表达式中1的个数相同且大小最接近的那两个数(一个略大,一个略小) ...
- 程序员面试金典 - 面试题 17.04. 消失的数字(数学/位运算)
1. 题目 数组 nums 包含从0到n的所有整数,但其中缺了一个. 请编写代码找出那个缺失的整数.你有办法在O(n)时间内完成吗? 注意:本题相对书上原题稍作改动 示例 1: 输入:[3,0,1] ...
- 程序员面试金典 - 面试题 01.04. 回文排列(哈希map)
1. 题目 给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一. 回文串是指正反两个方向都一样的单词或短语.排列是指字母的重新排列. 回文串不一定是字典当中的单词. 示例1: 输入:&quo ...
- 程序员面试金典 - 面试题 08.13. 堆箱子(DP)
1. 题目 堆箱子.给你一堆n个箱子,箱子宽 wi.深 di.高 hi. 箱子不能翻转,将箱子堆起来时,下面箱子的宽度.高度和深度必须大于上面的箱子. 实现一种方法,搭出最高的一堆箱子.箱堆的高度为每 ...
- 程序员面试金典 - 面试题 17.08. 马戏团人塔(最长上升子序 DP/二分查找)
文章目录 1. 题目 2. 解题 2.1 超时解 2.2 二分查找 1. 题目 有个马戏团正在设计叠罗汉的表演节目,一个人要站在另一人的肩膀上.出于实际和美观的考虑,在上面的人要比下面的人矮一点且轻一 ...
- 程序员面试金典 - 面试题 10.11. 峰与谷
题目难度: 中等 原题链接 今天继续更新程序员面试金典系列, 大家在公众号 算法精选 里回复 面试金典 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 在一个整数数组中,"峰& ...
- 程序员面试金典 - 面试题 10.03. 搜索旋转数组
题目难度: 中等 原题链接 今天继续更新程序员面试金典系列, 大家在公众号 算法精选 里回复 面试金典 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 搜索旋转数组.给定一个排序后的数组 ...
最新文章
- LSTM终获「正名」,IEEE 2021神经网络先驱奖授予LSTM提出者Sepp Hochreiter
- 小米7的传闻:这是我们迄今为止知道的
- UOJ228:基础数据结构练习题——题解
- 标识位:可以用以确定鼠标点击的是哪一个按钮或者是文本框
- HAproxy - 铁钉 - 51CTO技术博客
- ubuntu xfce4终端注销命令
- android蓝牙通信_使用Arduino构建OLED显示屏与Android手机接口的智能手表
- MySQL关于时间设置的注意事项
- JDBCUtils——C3P0
- (转)word2vec前世今生
- 打通 C++ 和 C# 关于 COM 组件互相调用的任督二脉
- 详解C# 匿名对象(匿名类型)、var、动态类型 dynamic
- DOSBox的安装及使用
- Arcgis3_地图符号制作与地图数据符号化
- 2048游戏编程C语言,使用C语言编写一个2048游戏
- 【OpenCV入门教程之五】 分离颜色通道 多通道图像混合
- MQTT协议之订阅及发布(使用paho-mqtt-client或mqttv3实现)
- 【Java类和对象】
- pythonbmi代码_python用代码实现体质指数BMI测试功能
- VS无法使用宏定义#define解决方案