题目描述:

输入一棵二叉树,判断该二叉树是否是平衡二叉树。

分析:

平衡二叉树(Self-balancing binary search tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树,同时,平衡二叉树必定是二叉搜索树,反之则不一定。平衡二叉树的常用实现方法有红黑树、AVL、替罪羊树、Treap、伸展树等。

根据定义两个子树的高度差的绝对值不超过1,那么可以通过递归求出左右子树的高度,计算它们的高度差,如果有高度差超过1,那么该树就不是平衡二叉树。

代码:

 1 class Solution {
 2 public:
 3     int isBalanced = true;
 4     bool IsBalanced_Solution(TreeNode* pRoot) {
 5         TreeDepth(pRoot);
 6         return isBalanced;
 7     }
 8
 9     int TreeDepth(TreeNode* pRoot) {
10         if(pRoot == NULL) return 0;
11         int leftTreeDepth = TreeDepth(pRoot->left);
12         int rightTreeDepth = TreeDepth(pRoot->right);
13         if(abs(leftTreeDepth - rightTreeDepth) > 1)
14             isBalanced = false;
15         return max(leftTreeDepth + 1, rightTreeDepth + 1);
16     }
17 };

转载于:https://www.cnblogs.com/jacen789/p/7747694.html

剑指Offer——平衡二叉树相关推荐

  1. 剑指offer 平衡二叉树

    题目:输入一棵二叉树,判断该二叉树是否是平衡二叉树. 分析:首先理解什么是平衡二叉树.平衡二叉树具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉 ...

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

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

  3. 剑指offer——面试题39-2:平衡二叉树

    剑指offer--面试题39-2:平衡二叉树 20180906整理 Solution1: 书上的思路,利用后序遍历,每个结点只遍历一次~ class Solution { public:bool Is ...

  4. C++版 - 剑指offer 面试题39:判断平衡二叉树(LeetCode 110. Balanced Binary Tree) 题解

    剑指offer 面试题39:判断平衡二叉树 提交网址:  http://www.nowcoder.com/practice/8b3b95850edb4115918ecebdf1b4d222?tpId= ...

  5. 剑指offer第二版答案详细版(带详细解题思路)

    1.滑动窗口的最大值(剑指offer原59题) 解题思路:其实是一个队列的问题,用一个队列去维护当前窗口中的所有元素:首先将超出窗口中的队头元素先删掉,然后将新的元素插入当前窗口中,插入时要判断新插入 ...

  6. 二叉树代码 java面试题_《剑指offer》面试题39 二叉树的深度(java)

    摘要: 今天翻到了<剑指offer>面试题39,题目二中的解法二是在函数的参数列表中通过指针的方式进行传值,而java是没有指针的,所以函数要进行改造.然而我翻了下别人的java版本(我就 ...

  7. 【剑指Offer】俯视50题之31 - 40题

    [剑指Offer]俯视50题之31 - 40题 面试题31连续子数组的最大和 面试题32从1到n整数中1出现的次数 面试题33把数组排成最小的数 面试题34丑数 面试题35第一个仅仅出现一次的字符 面 ...

  8. 剑指offer(34-40题)详解

    文章目录 34 第一个只出现一次的字符 35 数组中的逆序数 36 两个链表的第一个公共节点 37 数字在排序数组中出现的次数 38 二叉树的深度 39 平衡二叉树 40 数组中只出现一次的数字 欢迎 ...

  9. 剑指offer之题解目录(全)

    剑指offer之题解目录(全) 3. 从尾到头打印链表 4. 重建二叉树 5. 用两个栈实现队列 6. 旋转数组的最小数字 7. 斐波那契数列 8. 跳台阶 9. 变态跳台阶 10. 矩阵覆盖 11. ...

最新文章

  1. 20160406作业
  2. jstorm mysql_zookeeper,kafka,jstorm,memcached,mysql流式数据处理平台部署
  3. Python--DBUtil
  4. 【今日CV 计算机视觉论文速览 91期】Mon, 1 Apr 2019
  5. 2021-2025年中国传感器融合行业市场供需与战略研究报告
  6. 好气!等一年,这个iCloud 账户漏洞竟只值$1.8万?!说好的$35万呢???
  7. 怎么查看linux硬盘多路径,linux下磁盘多路径
  8. 让MacOS废纸篓中超过30 天的文件自动清除
  9. puppet经典应用
  10. Python识别图片中的文字
  11. 磁盘管理看不到硬盘的恢复办法
  12. Adobe Flash被禁用和无法加载的官方解决办法
  13. Cloudera Manager5.14.3集群搭建
  14. 【MySQL 09】安装mysql时出现:需要这两个包perl(Data::Dumper),perl(JSON)
  15. 附录3-form标签常用属性
  16. AI今年最大进展就是毫无进展?2019年AutoML、GAN将扛大旗
  17. 头歌平台数据可视化-第五关时间空间数据的可视化——等高线图
  18. 【工作感悟】路自在前,冷暖自知
  19. 「实战案例」基于Python语言开发的信用评分卡
  20. 豆瓣读书top250爬取

热门文章

  1. 把三千行代码重构为15行
  2. 二 IOC之PropertyPlaceholderConfigurer
  3. freecodecamp_常见技术支持问题– freeCodeCamp常见问题解答
  4. 面试:你了解中兴吗_HTTP简介:您需要了解的所有内容
  5. 亚马逊ses如何发qq_使用Amazon SES发送电子邮件
  6. 干货!链家二手房数据抓取及内容解析要点
  7. 输入vue ui没反应
  8. (已解决)ImportError attempted relative import with no known parent package
  9. 参加Java培训需要注意哪些
  10. 2021年Java面试题目最新总结【90%面试会踩的坑】