class Solution { public: bool isBalanced(TreeNode* root) { if (root == nullptr) return true; // 空树是平衡的 // 计算当前节点的左右子树高度 int leftHeight = getHeight(root->left); int rightHeight = getHeight(root->right); // 检查当前节点是否平衡 if (abs(leftHeight - rightHeight) > 1) { return false; } // 递归检查左右子树是否平衡 return isBalanced(root->left) && isBalanced(root->right); } private: // 辅助函数:计算树的高度 int getHeight(TreeNode* node) { if (node == nullptr) return 0; return max(getHeight(node->left), getHeight(node->right)) + 1; } };
点赞 评论

相关推荐

牛客网
牛客企业服务