39. 是否为平衡二叉树

题目描述

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

任意结点的左右子树高度差不大于1就是平衡二叉树。

C++解法

 class Solution {
public:
bool flag = true; // 记录是否为平衡二叉树,不是则为false
bool IsBalanced_Solution(TreeNode* pRoot) {
preOrder(pRoot);
return flag;
}
// 前序递归遍历
int preOrder(TreeNode* pRoot){
if(pRoot && flag == true){
int leftH = preOrder(pRoot->left);
int rightH = preOrder(pRoot->right);
if(abs(leftH - rightH) > )
flag = false;
return ((leftH >= rightH) ? (leftH + ) : (rightH + ));
}
return ;
} };

Java解法

 public class Solution {
public boolean IsBalanced_Solution(TreeNode root) {
if(preOrder(root) == -)
return false;
return true;
} // 如果是返回-1, 则表示不是平衡二叉树
public int preOrder(TreeNode root){
if(root == null)
return ;
int leftH = preOrder(root.left);
if(leftH == -)
return -; //如果发现子树不平衡之后就没有必要进行下面的高度的求解了
int rightH = preOrder(root.right);
if(- == rightH) // 如果发现子树不平衡之后就没有必要进行下面的高度的求解了
return -;
if((leftH - rightH) > || (leftH - rightH < -))
return -;
return ((leftH >= rightH) ? leftH : rightH) + ;
}
}

最新文章

  1. WebRTC音频预处理单元APM的整体编译及使用
  2. 代码片段添加智能提示,打造一款人见人爱的ORM框架
  3. python处理地理数据-geopandas和pyshp
  4. localstorage 的属性改变问题
  5. Java的动态代理(dynamic proxy)
  6. SQL 面向对象
  7. 初用Spring Test
  8. MyBatis(3.2.3) - Configuring MyBatis using XML, Mappers
  9. _00013 一致性哈希算法 Consistent Hashing 新的讨论,并出现相应的解决
  10. 打印man手册为pdf文件
  11. java中File类应用:遍历文件夹下所有文件
  12. oracle中number类型最简单明了解释
  13. 【Java】【问题】
  14. jmeter简单压测设置
  15. Oracle EBS 物化视图
  16. Hadoop生态圈-Flume的主流source源配置
  17. 对 Git 分支 master 和 origin/master 的一些认识
  18. Codeforces Round #241 (Div. 2) B. Art Union 基础dp
  19. c# 实现RPC框架的思路
  20. 【转载】#438 - Benefits of Using Interfaces

热门文章

  1. 【Python3爬虫】一次应对JS反调试的记录
  2. jenkins 参数化运行性能测试脚本
  3. JavaScript-状态模式
  4. AndroidStudio报错:GradleSyncIssues-Could not install Gradle distribution from...
  5. SVN状态图标不显示的解决办法
  6. Codeforces Round 450 D 隔板法+容斥
  7. Lucene之查询索引
  8. mybatis 配置---&gt;确认jar包是否正确
  9. centos7安装opencv3.4.1(同样适用于最新版本4.2.0)
  10. 【WCF Restful】Post传参示范