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

判断是不是平衡二叉树

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

class Solution {
private:
    // 辅助函数:递归计算树的高度,如果不平衡返回-1
    int Helper(TreeNode* root) {
        if (root == nullptr) return 0; // 空树高度为0
        int leftHeight = Helper(root->left);
        if (leftHeight == -1) return -1; // 左子树不平衡
        int rightHeight = Helper(root->right);
        if (rightHeight == -1) return -1; // 右子树不平衡
        if (std::abs(leftHeight - rightHeight) > 1) return -1; // 当前节点不平衡
        return std::max(leftHeight, rightHeight) + 1; // 返回树的高度
    }
public:
    // 主函数:判断二叉树是否平衡
    bool IsBalanced_Solution(TreeNode* pRoot) {
        return Helper(pRoot) != -1; // 判断辅助函数的返回值是否为-1
    }
};

全部评论

相关推荐

点赞 评论 收藏
分享
07-07 14:30
复旦大学 Java
遇到这种人我也不知道说啥了
无能的丈夫:但我觉得这个hr语气没什么问题啊(没有恶意
点赞 评论 收藏
分享
湫湫湫不会java:先投着吧,大概率找不到实习,没实习的时候再加个项目,然后把个人评价和荣誉奖项删了,赶紧成为八股战神吧,没实习没学历,秋招机会估计不多,把握机会。或者说秋招时间去冲实习,春招冲offer,但是压力会比较大
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 18:05
哈哈哈哈哈感觉朋友找工作的已经疯掉了,直接上图
码农索隆:真老板娘:“我嘞个去,这不我当年的套路吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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