题解 | #判断是不是平衡二叉树#
判断是不是平衡二叉树
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 } };