剑指offer 39. 是否为平衡二叉树
2024-09-06 20:32:32
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) + ;
}
}
最新文章
- WebRTC音频预处理单元APM的整体编译及使用
- 代码片段添加智能提示,打造一款人见人爱的ORM框架
- python处理地理数据-geopandas和pyshp
- localstorage 的属性改变问题
- Java的动态代理(dynamic proxy)
- SQL 面向对象
- 初用Spring Test
- MyBatis(3.2.3) - Configuring MyBatis using XML, Mappers
- _00013 一致性哈希算法 Consistent Hashing 新的讨论,并出现相应的解决
- 打印man手册为pdf文件
- java中File类应用:遍历文件夹下所有文件
- oracle中number类型最简单明了解释
- 【Java】【问题】
- jmeter简单压测设置
- Oracle EBS 物化视图
- Hadoop生态圈-Flume的主流source源配置
- 对 Git 分支 master 和 origin/master 的一些认识
- Codeforces Round #241 (Div. 2) B. Art Union 基础dp
- c# 实现RPC框架的思路
- 【转载】#438 - Benefits of Using Interfaces
热门文章
- 【Python3爬虫】一次应对JS反调试的记录
- jenkins 参数化运行性能测试脚本
- JavaScript-状态模式
- AndroidStudio报错:GradleSyncIssues-Could not install Gradle distribution from...
- SVN状态图标不显示的解决办法
- Codeforces Round 450 D 隔板法+容斥
- Lucene之查询索引
- mybatis 配置--->;确认jar包是否正确
- centos7安装opencv3.4.1(同样适用于最新版本4.2.0)
- 【WCF Restful】Post传参示范