55 - II. 平衡二叉树

Ideas

这题直接扣平衡二叉树的定义就可以了,需要写一个辅助函数用来计算二叉树的高度,然后计算根节点左右子树的高度差,满足深度相差不超过1,那么它就是一棵平衡二叉树。

Code

C++

class Solution {public:int get_height(TreeNode* node) {if (node == NULL) {return 0;} else {return max(get_height(node->left), get_height(node->right)) + 1;}}bool isBalanced(TreeNode* root) {if (root == NULL) {return true;}int left_height = get_height(root->left);int right_height = get_height(root->right);return abs(left_height - right_height) < 2 && isBalanced(root->left) && isBalanced(root->right) ? true : false;}
};

极限压缩版:

class Solution {public:int get_height(TreeNode* node) {return node == NULL ? 0 : max(get_height(node->left), get_height(node->right)) + 1;}bool isBalanced(TreeNode* root) {return root == NULL ? true : abs(get_height(root->left) - get_height(root->right)) < 2 && isBalanced(root->left) && isBalanced(root->right) ? true : false;}
};

LeetCode Algorithm 剑指 Offer 55 - II. 平衡二叉树相关推荐

  1. 【LeetCode】剑指 Offer 55 - II. 平衡二叉树

    [LeetCode]剑指 Offer 55 - II. 平衡二叉树 文章目录 [LeetCode]剑指 Offer 55 - II. 平衡二叉树 一.后序遍历 + 剪枝(从底至顶) 一.后序遍历 + ...

  2. LeetCode Algorithm 剑指 Offer 57 - II. 和为s的连续正数序列

    剑指 Offer 57 - II. 和为s的连续正数序列 Ideas 区间问题首先想到用双指针. 因为这题没有给定数组,其实相当于就是一个从1到target的数组,然后直接套双指针的模板就可以了. 双 ...

  3. 【LeetCode笔记】剑指 Offer 55 - II. 平衡二叉树(递归、二叉树)

    文章目录 题目描述 思路 && 代码 二刷 一脸懵逼,居然没写这道题的题解.. 题目描述 思路 && 代码 思路:平衡二叉树判断公式 = 左子树满足 + 右子树满足 + ...

  4. 【LeetCode】剑指 Offer 32 - II. 从上到下打印二叉树 II

    [LeetCode]剑指 Offer 32 - II. 从上到下打印二叉树 II 文章目录 [LeetCode]剑指 Offer 32 - II. 从上到下打印二叉树 II 一.层序遍历 BFS 一. ...

  5. 【LeetCode】剑指 Offer 59 - II. 队列的最大值

    [LeetCode]剑指 Offer 59 - II. 队列的最大值 文章目录 [LeetCode]剑指 Offer 59 - II. 队列的最大值 package offer;import java ...

  6. 【LeetCode】剑指 Offer 58 - II. 左旋转字符串

    [LeetCode]剑指 Offer 58 - II. 左旋转字符串 文章目录 [LeetCode]剑指 Offer 58 - II. 左旋转字符串 一.字符串切片 二.列表遍历拼接 三.字符串遍历拼 ...

  7. 【LeetCode】剑指 Offer 68 - II. 二叉树的最近公共祖先

    [LeetCode]剑指 Offer 68 - II. 二叉树的最近公共祖先 文章目录 [LeetCode]剑指 Offer 68 - II. 二叉树的最近公共祖先 一.DFS 一.DFS 祖先的定义 ...

  8. 【LeetCode】剑指 Offer 57 - II. 和为s的连续正数序列

    [LeetCode]剑指 Offer 57 - II. 和为s的连续正数序列 文章目录 [LeetCode]剑指 Offer 57 - II. 和为s的连续正数序列 一.求和公式 二.滑动窗口(双指针 ...

  9. 【LeetCode】剑指 Offer 55 - I. 二叉树的深度

    [LeetCode]剑指 Offer 55 - I. 二叉树的深度 文章目录 [LeetCode]剑指 Offer 55 - I. 二叉树的深度 一.后序遍历(DFS) 二.层序遍历 一.后序遍历(D ...

最新文章

  1. ASP调用存储过程返回了一个参数和一个记录集时出现ADODB.Recordset 错误 '800a0e78'...
  2. UTF8转换为GB编码gb2312转换为utf-8
  3. 设计模式--状态(State)模式
  4. trap--shell脚本调试的不二人选
  5. 蓝桥杯C语言指数计算,蓝桥杯 算式900!!!!自己编的程序出毛病 了 求大神帮忙!~...
  6. 如何构建低延时直播体验,让互动更实时?
  7. 如何理解nextTick函数
  8. 多目标进化优化_科研一角|论文分享 | 等离子喷焊工艺参数多目标优化
  9. 6.Linux 高性能服务器编程 --- 高级 I/O 函数
  10. 高光谱图像处理之目标检测技术(CEM算法)(图像处理)
  11. 转:查理·芒格:让打击和麻烦成为成长的契机
  12. MySQL安装QT连接MySQL学习记录
  13. upc组队赛16 GCDLCM 【Pollard_Rho大数质因数分解】
  14. 阿里云大学-虚拟化技术入门-听课笔记
  15. Fiddle 抓包小白一步带过超详细教程(含汉化)
  16. 漫话:如何给女朋友解释为什么日本时间比中国时间快一个小时
  17. 灰zhu姑xiao娘mei
  18. Linux系统中的库
  19. MBA案例分析(人员培训三)
  20. AggregatingMergeTree

热门文章

  1. v-charts修改点击图例事件,legendselectchanged
  2. 2016 CCPC 杭州站 小结
  3. C#面向对象的三大特性
  4. Ruby Regexp
  5. (转)用来理解Java的8个图表
  6. Mirror--镜像使用的工作线程数
  7. 数据结构趣题——顺序表就地逆置
  8. 使用squid代理时出现“The requested URL could not be retrieved”
  9. C语言学习之1到10的奇数相乘1到10的偶数相乘
  10. 用C++设计一个不能被继承的类