【数据结构--二叉树】平衡二叉树

题目描述:

代码实现:

cpp 复制代码
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */
int TreeHeight(struct TreeNode* root)
{
    if(root==NULL)
        return 0;
    //左右子树中大的那个+1
    int left=TreeHeight(root->left);
    int right=TreeHeight(root->right);
    return left>right?left+1:right+1;
}
bool isBalanced(struct TreeNode* root){
    if(root==NULL)
        return true;
    int left=TreeHeight(root->left);
    int right=TreeHeight(root->right);
    if(left-right>1||right-left>1)
    {
        return false;
    }
    return isBalanced(root->left)&&isBalanced(root->right);
}
相关推荐
乐迪信息6 小时前
乐迪信息:目标检测算法+AI摄像机:煤矿全场景识别方案
人工智能·物联网·算法·目标检测·目标跟踪·语音识别
前端小L12 小时前
贪心算法专题(十):维度权衡的艺术——「根据身高重建队列」
javascript·算法·贪心算法
方得一笔12 小时前
自定义常用的字符串函数(strlen,strcpy,strcmp,strcat)
算法
Xの哲學12 小时前
Linux SMP 实现机制深度剖析
linux·服务器·网络·算法·边缘计算
Thera77712 小时前
状态机(State Machine)详解:原理、优缺点与 C++ 实战示例
开发语言·c++
linux开发之路12 小时前
C++高性能日志库开发实践
c++·c++项目·后端开发·c++新特性·c++校招
wuk99812 小时前
使用PCA算法进行故障诊断的MATLAB仿真
算法·matlab
额呃呃12 小时前
二分查找细节理解
数据结构·算法
无尽的罚坐人生13 小时前
hot 100 283. 移动零
数据结构·算法·双指针
刻BITTER13 小时前
在TRAE 上安装PlatformIO
c++·单片机·嵌入式硬件·arduino