//本题的关键在于“每个节点”的左右两个子树高度差的绝对值为1.
//因此,要判断“每个节点”的左右子树.
struct TreeNode
{
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x):val(x),left(NULL),right(NULL){}
};
class Solution
{
public:
//定义一个求树高度的方法
//递归
int treeHeight(TreeNode* root)
{
if(root==NULL) return 0;
return max(treeHeight(root->left),treeHeight(root->right))+1;
}
//判断
bool isBalanced(TreeNode* root)
{
if(root==NULL) return true;
int left_Height=treeHeight(root->left);
int right_Height=treeHeight(root->right);
if(abs(left_Height-right_Height)<=1)
{
//对“每个节点”进行判断
if(isBalanced(root->left) && isBalanced(root->right)) return true;
else return false;
}
return false;
}
};
每日一题:平衡二叉树
最新推荐文章于 2023-10-16 13:37:08 发布