剑指 Offer 55 - II. 平衡二叉树

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/ping-heng-er-cha-shu-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

class Solution {

    private Info solve(TreeNode root) {
        if (root == null) {
            return new Info(true, 0);
        }

        Info left = solve(root.left);
        Info right = solve(root.right);

        boolean ok = left.ok && right.ok && Math.abs(left.deep - right.deep) <= 1;
        int deep = Math.max(left.deep, right.deep) + 1;


        return new Info(ok, deep);
    }

    public boolean isBalanced(TreeNode root) {
        return solve(root).ok;
    }
}

class Info {
    boolean ok;
    int deep;

    public Info(boolean ok, int deep) {
        this.ok = ok;
        this.deep = deep;
    }
}


class TreeNode {
    int val;
    TreeNode left;
    TreeNode right;

    TreeNode(int x) {
        val = x;
    }
}

posted @   Tianyiya  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示