题解 | #平衡二叉树#

平衡二叉树

http://www.nowcoder.com/practice/8b3b95850edb4115918ecebdf1b4d222

package org.example.test;

public class IsBalancedTest {

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

        public TreeNode(int val) {
            this.val = val;
        }
    }

    public boolean IsBalanced_Solution(TreeNode root) {
        return getHight(root) != -1;
    }

    /**
     * 练习一段时间后,发现这些以前做不来的,现在轻松就做出来了。
     * 加油,多练习!
     *
     * @param root
     * @return
     */
    private int getHight(TreeNode root) {
        if (root == null) {
            return 0;
        }
        int z = 0;
        int x = getHight(root.left);
        if (x == -1) {
            return -1;
        }
        int y = getHight(root.right);
        if (y == -1) {
            return -1;
        }
        if (Math.abs(y - x) > 1) {
            return -1;
        } else {
            z = Math.max(x, y) + 1;
        }
        return z;
    }
}
算法 文章被收录于专栏

数据结构和算法

全部评论
很好
点赞 回复 分享
发布于 2021-09-03 13:41

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务