题目描述

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

解题思路

在二叉树的深度上求,分别求其左右子树的深度,如果深度差值小于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:平衡二叉树相关推荐

  1. 剑指Offer——平衡二叉树

    题目描述: 输入一棵二叉树,判断该二叉树是否是平衡二叉树. 分析: 平衡二叉树(Self-balancing binary search tree)又被称为AVL树(有别于AVL算法),且具有以下性质 ...

  2. 剑指offer 平衡二叉树

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. php端口转发源码,Python实现TCP/IP协议下的端口转发及重定向示例
  2. java工作流引擎证照库类型的流程设计 实现方案与演示案例
  3. html5语法参考图片,仿AS语法来写HTML5—第1章,显示一张图片
  4. Teams Tab的Single Sign-On
  5. Vss2005局域网开发权限设置指南
  6. ZOJ-1094-Matrix Chain Multiplication
  7. python学习第21天
  8. 以《数据安全法》为背景的全息数据安全解决方案
  9. 百度 bos php,百度开放云 BOS Uploader
  10. 对文件进行哈夫曼编码压缩与译码的C++实现 以及压缩率计算 ——HIT杨朔
  11. php账单明细功能怎么实现,php 处理微信账单
  12. 【RS】关于路由器ping不通直连的几种原因(3)
  13. [编程题]:n头牛中选择满足所有m种特性的牛(百度2021)
  14. c语言中%if是什么意思,C语言中if(!a)表示什么意思?
  15. php configure 报错 error: xml2-config not found. Please check your libxml2 installation
  16. 【苦瓜菜谱】牛肉饭(可比吉野家牛肉饭哦)∣
  17. 计算机专业扬大vs兰州大学,复试奇怪景象:兰州大学初试前五(400+)都被刷!扬州大学唯一上线也被刷!...
  18. Skype-Type:一款通过声音窃取键盘记录的Keylogger工具
  19. 概率密度估计小结--参数估计与非参数估计
  20. Openwrt X86 独臂路由器改造

热门文章

  1. CSS 样式书写规范
  2. [VC++入门]指针一
  3. MyBatis——Java API
  4. awl 多线程SYN***工具0.2版,加了MAC伪装
  5. nginx的小总结(二)
  6. [转]ArcGIS.Server.9.3和ArcGIS API for Flex实现Query查询定位中心功能(七)
  7. 卷积神经网络原理_怎样设计最优的卷积神经网络架构?| NAS原理剖析
  8. UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xb0 in position 0: invalid start byte
  9. [深度学习] keras的EarlyStopping使用与技巧
  10. win7隐藏linux分区工具,传授win7系统用组策略把分区隐藏掉的处理对策