题解 | #判断是不是平衡二叉树#

判断是不是平衡二叉树

https://www.nowcoder.com/practice/8b3b95850edb4115918ecebdf1b4d222

/**
 * struct TreeNode {
 *	int val;
 *	struct TreeNode *left;
 *	struct TreeNode *right;
 * };
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 */

/**
 * 
 * @param pRoot TreeNode类 
 * @return bool布尔型
 */
int length(struct TreeNode* root){
    if(root==NULL){
        return 0;
    }
    
    return fmax(length(root->left),length(root->right))+1;
}

bool IsBalanced_Solution(struct TreeNode* pRoot ) {
    // write code here
    if(pRoot==NULL){
        return true;
    }
    
    int left_l = length(pRoot->left);
    int right_l = length(pRoot->right);
    
    if(fabs(left_l - right_l) <= 1){
        return IsBalanced_Solution(pRoot->left)&&(IsBalanced_Solution(pRoot->right));
    }else{
        return false;
    }
    
    return true;
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-10 15:58
投个小米提前批试试水,先投一个岗位看看形势,不行就再沉淀一下投第二个岗位,莫辜负
Java抽象带篮子:我嘞个骚刚,已经开始研发6g了吗
投递小米集团等公司9个岗位
点赞 评论 收藏
分享
废物一个0offer:认真的吗二本本科找人工智能岗位
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-10 12:05
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务