笔记:武汉理工大学2017年计算机考研复试 算法笔试题解3
2023-09-27 14:19:45 时间
题目:写出一个判断平衡二叉树的算法。
题解:
#include<iostream>
#include<stdio.h>
using namespace std;
typedef struct node{
int val;
node* left;
node* right;
}treeNode;
int BinaryTreeHigh(treeNode* root)//求树的高度
{
if(root==NULL)
{
return 0;
}
int high1 = BinaryTreeHigh(root->left);
int high2 = BinaryTreeHigh(root->right);
return high1>high2? high1+1:high2+1;//左、右中取最大,然后+1
}
int IsBlancedTree(treeNode* root)//判断平衡
{
if(root==NULL)//为空则是平衡
{
return 1;
}
int right =BinaryTreeHigh(root->right);
int left =BinaryTreeHigh(root->left);
int gap =right - left;//返回右子树和左子树的差值
if(gap>1||gap<-1)
return 0;
return IsBlancedTree(root->left)&&IsBlancedTree(root->right);//递归
}
相关文章
- 神经网络与机器学习 笔记—反向传播算法(BP)
- 拓扑排序((算法竞赛入门经典)刘汝佳)
- STL_算法_查找算法(binary_search、includes)
- [DeeplearningAI笔记]卷积神经网络3.1-3.5目标定位/特征点检测/目标检测/滑动窗口的卷积神经网络实现/YOLO算法
- OpenCV中的图像阈值处理算法
- 矩阵束的ESPRIT算法
- 机器学习笔记之EM算法(三)隐变量与EM算法的本质
- 机器学习笔记之线性分类——感知机算法
- 《数据挖掘:理论与算法》学习笔记(四)—贝叶斯分类
- STL - 函数作为算法的参数
- Memcached 笔记与总结(8)Memcached 的普通哈希分布算法和一致性哈希分布算法命中率对比
- 《算法笔记》习题
- 2020上半年收集到的优质AI文章 – 开源框架&算法&数据集
- 1017 Queueing at Bank 贪心算法解决
- 算法复习笔记(四)减治法
- 算法复习笔记之重要算法(二)
- 华为OD机试 - 查找单入口空闲区域(JavaScript) | 机试题+算法思路+考点+代码解析 【2023】
- 华为OD机试 - 整数对最小和(Python) | 机试题+算法思路+考点+代码解析 【2023】
- K最邻近算法笔记
- GDI+学习笔记(九)带插件的排序算法演示器(MFC中的GDI+实例)