题解 | #判断是不是平衡二叉树#
判断是不是平衡二叉树
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
}
};
查看11道真题和解析