剑指offer:平衡二叉树
题目描述
输入一棵二叉树,判断该二叉树是否是平衡二叉树。
解题思路
在二叉树的深度上求,分别求其左右子树的深度,如果深度差值小于1则为平衡二叉树。
从上而下
class Solution {
public:int TreeDepth(TreeNode* pRoot){if(pRoot==NULL) return 0;int leftn = TreeDepth(pRoot->left);int rightn = TreeDepth(pRoot->right);return (leftn>rightn)? (leftn+1):(rightn+1); }bool IsBalanced_Solution(TreeNode* pRoot) {if(pRoot == NULL) return true;int leftn = TreeDepth(pRoot->left);int rightn = TreeDepth(pRoot->right);if(abs(leftn-rightn)<=1) return true;else return false;}
};
后序遍历,自下而上节省开销。
class Solution {
public:int TreeDepth(TreeNode* pRoot){if(pRoot==NULL) return 0;int leftn = TreeDepth(pRoot->left);int rightn = TreeDepth(pRoot->right);return (leftn>rightn)? (leftn+1):(rightn+1); }int getDepth(TreeNode* pRoot) {if(pRoot==NULL) return 0;int leftn = TreeDepth(pRoot->left);if(leftn==-1) return -1;int rightn = TreeDepth(pRoot->right);if(rightn==-1) return -1;if(abs(leftn-rightn)>1) return -1;else return (leftn>rightn)? (leftn+1):(rightn+1); }bool IsBalanced_Solution(TreeNode* pRoot) {if(pRoot == NULL) return true;if(getDepth(pRoot)!=-1) return true;else return false;}
};
剑指offer:平衡二叉树相关推荐
- 剑指Offer——平衡二叉树
题目描述: 输入一棵二叉树,判断该二叉树是否是平衡二叉树. 分析: 平衡二叉树(Self-balancing binary search tree)又被称为AVL树(有别于AVL算法),且具有以下性质 ...
- 剑指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. ...
最新文章
- php端口转发源码,Python实现TCP/IP协议下的端口转发及重定向示例
- java工作流引擎证照库类型的流程设计 实现方案与演示案例
- html5语法参考图片,仿AS语法来写HTML5—第1章,显示一张图片
- Teams Tab的Single Sign-On
- Vss2005局域网开发权限设置指南
- ZOJ-1094-Matrix Chain Multiplication
- python学习第21天
- 以《数据安全法》为背景的全息数据安全解决方案
- 百度 bos php,百度开放云 BOS Uploader
- 对文件进行哈夫曼编码压缩与译码的C++实现 以及压缩率计算 ——HIT杨朔
- php账单明细功能怎么实现,php 处理微信账单
- 【RS】关于路由器ping不通直连的几种原因(3)
- [编程题]:n头牛中选择满足所有m种特性的牛(百度2021)
- c语言中%if是什么意思,C语言中if(!a)表示什么意思?
- php configure 报错 error: xml2-config not found. Please check your libxml2 installation
- 【苦瓜菜谱】牛肉饭(可比吉野家牛肉饭哦)∣
- 计算机专业扬大vs兰州大学,复试奇怪景象:兰州大学初试前五(400+)都被刷!扬州大学唯一上线也被刷!...
- Skype-Type:一款通过声音窃取键盘记录的Keylogger工具
- 概率密度估计小结--参数估计与非参数估计
- Openwrt X86 独臂路由器改造
热门文章
- CSS 样式书写规范
- [VC++入门]指针一
- MyBatis——Java API
- awl 多线程SYN***工具0.2版,加了MAC伪装
- nginx的小总结(二)
- [转]ArcGIS.Server.9.3和ArcGIS API for Flex实现Query查询定位中心功能(七)
- 卷积神经网络原理_怎样设计最优的卷积神经网络架构?| NAS原理剖析
- UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xb0 in position 0: invalid start byte
- [深度学习] keras的EarlyStopping使用与技巧
- win7隐藏linux分区工具,传授win7系统用组策略把分区隐藏掉的处理对策