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;
    }
};

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/282745.html

(0)
上一篇 2022年8月28日
下一篇 2022年8月28日

相关推荐

发表回复

登录后才能评论