输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。
bool IsBalanced(TreeNode *root, int &depth) {
if (nullptr == root)
return true;
int left = 0, right = 0;
if (IsBalanced(root->left, left) && IsBalanced(root->right, right)) {
depth = left > right ? left + 1 : right + 1;
int diff = abs(left - right);
if (diff > 1)
return false;
return true;
}
return false;
}
bool isBalanced(TreeNode* root) {
int depth = 0;
return IsBalanced(root, depth);
}
本文介绍了一种判断二叉树是否为平衡二叉树的方法。平衡二叉树是指任意节点的左右子树深度相差不超过1的二叉树。通过递归算法遍历每个节点并比较左右子树深度来实现。
701

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



