其他分享
首页 > 其他分享> > 110.balanced-binary-tree 平衡二叉树

110.balanced-binary-tree 平衡二叉树

作者:互联网

获取左右子树的高度,如果左右子树高度差小于等于1,则判断左右子树的左右子树,如此递归下去。

class Solution {
  public:
    int getDp(TreeNode *root) {
        if (root == nullptr)
            return 0;
        int ldp = getDp(root->left);
        int rdp = getDp(root->right);
        return (ldp < rdp ? rdp : ldp) + 1;
    }
    bool isBalanced(TreeNode *root) {
        if (root == nullptr)
            return true;

        int ldp = getDp(root->left);
        int rdp = getDp(root->right);
        if (ldp - rdp <= 1 && ldp - rdp >= -1) {
            bool l = isBalanced(root->left);
            bool r = isBalanced(root->right);
            return l && r;
        } else
            return false;
    }
};

标签:binary,return,rdp,int,tree,getDp,ldp,二叉树,root
来源: https://www.cnblogs.com/zwyyy456/p/16633335.html