剑指Offer——平衡二叉树
题目描述:
输入一棵二叉树,判断该二叉树是否是平衡二叉树。
分析:
平衡二叉树(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——平衡二叉树相关推荐
- 剑指offer 平衡二叉树
题目:输入一棵二叉树,判断该二叉树是否是平衡二叉树. 分析:首先理解什么是平衡二叉树.平衡二叉树具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉 ...
- 【LeetCode】剑指 Offer 55 - II. 平衡二叉树
[LeetCode]剑指 Offer 55 - II. 平衡二叉树 文章目录 [LeetCode]剑指 Offer 55 - II. 平衡二叉树 一.后序遍历 + 剪枝(从底至顶) 一.后序遍历 + ...
- 剑指offer——面试题39-2:平衡二叉树
剑指offer--面试题39-2:平衡二叉树 20180906整理 Solution1: 书上的思路,利用后序遍历,每个结点只遍历一次~ class Solution { public:bool Is ...
- C++版 - 剑指offer 面试题39:判断平衡二叉树(LeetCode 110. Balanced Binary Tree) 题解
剑指offer 面试题39:判断平衡二叉树 提交网址: http://www.nowcoder.com/practice/8b3b95850edb4115918ecebdf1b4d222?tpId= ...
- 剑指offer第二版答案详细版(带详细解题思路)
1.滑动窗口的最大值(剑指offer原59题) 解题思路:其实是一个队列的问题,用一个队列去维护当前窗口中的所有元素:首先将超出窗口中的队头元素先删掉,然后将新的元素插入当前窗口中,插入时要判断新插入 ...
- 二叉树代码 java面试题_《剑指offer》面试题39 二叉树的深度(java)
摘要: 今天翻到了<剑指offer>面试题39,题目二中的解法二是在函数的参数列表中通过指针的方式进行传值,而java是没有指针的,所以函数要进行改造.然而我翻了下别人的java版本(我就 ...
- 【剑指Offer】俯视50题之31 - 40题
[剑指Offer]俯视50题之31 - 40题 面试题31连续子数组的最大和 面试题32从1到n整数中1出现的次数 面试题33把数组排成最小的数 面试题34丑数 面试题35第一个仅仅出现一次的字符 面 ...
- 剑指offer(34-40题)详解
文章目录 34 第一个只出现一次的字符 35 数组中的逆序数 36 两个链表的第一个公共节点 37 数字在排序数组中出现的次数 38 二叉树的深度 39 平衡二叉树 40 数组中只出现一次的数字 欢迎 ...
- 剑指offer之题解目录(全)
剑指offer之题解目录(全) 3. 从尾到头打印链表 4. 重建二叉树 5. 用两个栈实现队列 6. 旋转数组的最小数字 7. 斐波那契数列 8. 跳台阶 9. 变态跳台阶 10. 矩阵覆盖 11. ...
最新文章
- 20160406作业
- jstorm mysql_zookeeper,kafka,jstorm,memcached,mysql流式数据处理平台部署
- Python--DBUtil
- 【今日CV 计算机视觉论文速览 91期】Mon, 1 Apr 2019
- 2021-2025年中国传感器融合行业市场供需与战略研究报告
- 好气!等一年,这个iCloud 账户漏洞竟只值$1.8万?!说好的$35万呢???
- 怎么查看linux硬盘多路径,linux下磁盘多路径
- 让MacOS废纸篓中超过30 天的文件自动清除
- puppet经典应用
- Python识别图片中的文字
- 磁盘管理看不到硬盘的恢复办法
- Adobe Flash被禁用和无法加载的官方解决办法
- Cloudera Manager5.14.3集群搭建
- 【MySQL 09】安装mysql时出现:需要这两个包perl(Data::Dumper),perl(JSON)
- 附录3-form标签常用属性
- AI今年最大进展就是毫无进展?2019年AutoML、GAN将扛大旗
- 头歌平台数据可视化-第五关时间空间数据的可视化——等高线图
- 【工作感悟】路自在前,冷暖自知
- 「实战案例」基于Python语言开发的信用评分卡
- 豆瓣读书top250爬取
热门文章
- 把三千行代码重构为15行
- 二 IOC之PropertyPlaceholderConfigurer
- freecodecamp_常见技术支持问题– freeCodeCamp常见问题解答
- 面试:你了解中兴吗_HTTP简介:您需要了解的所有内容
- 亚马逊ses如何发qq_使用Amazon SES发送电子邮件
- 干货!链家二手房数据抓取及内容解析要点
- 输入vue ui没反应
- (已解决)ImportError attempted relative import with no known parent package
- 参加Java培训需要注意哪些
- 2021年Java面试题目最新总结【90%面试会踩的坑】