1、
Balanced Binary Tree
Given a binary tree, determine if it is height-balanced.
For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.
分析:判断一棵树是否是平衡树,只要判断左右子树的树深差值,如果差值大于1则非,如果小于等于1则是,递归判断左右子树。
class Solution {
public:
bool isBalanced(TreeNode *root) {
if(!root){
return true;
}
isBalancedTree = true;
calDepth(root);
return isBalancedTree;
}
int calDepth(TreeNode* root){
if(!isBalancedTree){
return 0;
}
if(!root->left && !root->right){
return 1;
}
int left = 0;
int right = 0;
if(root->left){
left = calDepth(root->left);
}
if(root->right){
right = calDepth(root->right);
}
if(abs(left-right) > 1){
isBalancedTree = false;
}
return max(right,left)+1;
}
bool isBalancedTree;
};
本文介绍了一种判断二叉树是否为平衡二叉树的方法。通过递归计算每个节点的左右子树深度,并检查其差值是否超过1来确定整棵树是否平衡。平衡二叉树定义为任意节点的左右子树深度之差不超过1。
3486

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



