剑指off-判断一棵树是否是平衡二叉树

来源:互联网 发布:外星文明不存在 知乎 编辑:程序博客网 时间:2024/05/20 03:39

题目:判断二叉树是不是平衡二叉树

分析:平衡二叉树的特点是,左右子树的深度不超过1,那么根据之前求树的深度进行扩展

int finddeepth(BinaryTreeNode* root){    if (root==NULL) {        return 0;    }    int deepleft =finddeepth(root->left);    int deepright=finddeepth(root->right);    return  deepleft>deepright?(deepleft+1):(deepright+1);;}bool IsBalance(BinaryTreeNode* root){    if (root==NULL) {        return true;    }    int left=finddeepth(root->left);    int right=finddeepth(root->right);    if (std::abs(left-right)>1) {        return false;    }    return IsBalance(root->left) && IsBalance(root->right);}


0 0