leetcode刷题. 面试题55 - II. 平衡二叉树

输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。

 bool IsBalanced(TreeNode *root, int &depth) {

         if (nullptr == root)
                 return true;
         
         int left = 0, right = 0;

         if (IsBalanced(root->left, left) && IsBalanced(root->right, right)) {

                 depth = left > right ? left + 1 : right + 1;
                 int diff = abs(left - right);
                 if (diff > 1)
                         return false;
                 return true;
         }
         return false;
 }

bool isBalanced(TreeNode* root) {

    int depth = 0;
    return IsBalanced(root, depth);
}

 

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 书香水墨 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读