判断是不是平衡二叉树_牛客题霸_牛客网 (nowcoder.com)

class Solution {
public:
int getHigh(TreeNode* root){
if(root == nullptr) return 0;
if(root->left == nullptr && root->right == nullptr) return 1;
return 1+max(getHigh(root->left),getHigh(root->right));
}
bool IsBalanced_Solution(TreeNode* pRoot) {
if(pRoot == nullptr) return true;
int leftHigh = getHigh(pRoot->left);
int rightHigh = getHigh(pRoot->right);
if(abs(leftHigh-rightHigh) > 1) return false;
return IsBalanced_Solution(pRoot->left)&&IsBalanced_Solution(pRoot->right);
}
};
该文章提供了一个C++解决方案,用于判断给定的二叉树是否是平衡二叉树。代码通过递归计算左右子树的高度并比较它们的差值来确定平衡状态。
466

被折叠的 条评论
为什么被折叠?



