自学内容网 自学内容网

判断是否为平衡二叉树-二叉树题型

LCR 176. 判断是否为平衡二叉树 - 力扣(LeetCode)

深度优先,递归到叶子节点,在返回时+1,判断左右子树的abs(left, right) < 2

class Solution {
public:
    bool isBalanced(TreeNode* root) {
        //终止条件
    return recur(root) != -1;
    }

    int recur(TreeNode* root){
        //终止条件
        if(root == nullptr)
            return 0;
        //左子树
        int left = recur(root->left);
        if(left == -1) return -1;
        //右子树
        int right = recur(root->right);
        if(right == -1) return -1;
        //判断
        return abs(left - right) < 2 ? max(left, right) + 1 : -1;
    }

};


原文地址:https://blog.csdn.net/user2604530353/article/details/140170775

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!