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

题目描述:

代码实现:

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);
}
相关推荐
图形学爱好者_Wu几秒前
每日一个C++知识点|const和static的区别
c++
aini_lovee1 分钟前
基于 OpenCV 的模板匹配算法的 C 语言实现
c语言·opencv·算法
core5122 分钟前
EM 算法 (期望最大化):在迷雾中寻找真相
算法·em·期望最大化
CoovallyAIHub3 分钟前
YOLO11-4K:面向4K全景图像的高效实时检测框架,CVIP360数据集开源
深度学习·算法·计算机视觉
安_11 分钟前
java Arrays.sort 用的什么算法
java·算法·排序算法
蓝色汪洋11 分钟前
数字(加强版)
算法
进击的小头12 分钟前
02_嵌入式C与控制理论入门:自动控制理论核心概念拆解
c语言·单片机·算法
郝学胜-神的一滴13 分钟前
Linux 多线程编程:深入理解 `pthread_join` 函数
linux·开发语言·jvm·数据结构·c++·程序人生·算法
客梦14 分钟前
数据结构--排序
数据结构·笔记
Trouvaille ~15 分钟前
【C++篇】C++11新特性详解(二):右值引用与移动语义
c++·stl·基础语法·右值引用·默认成员函数·完美转发·移动语义