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

判断是不是平衡二叉树

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
    }
};

全部评论

相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 12:23
转人工😡
门口唉提是地铁杀:五次握手了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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