【Leetcode】Balanced Binary Tree (Tree Judge)

来源:互联网 发布:网络url地址是什么 编辑:程序博客网 时间:2024/06/12 21:32

Given a binary tree, determine if it is height-balanced.

For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.

左子树和右子树的高度差不能超过1。helper的作用用于判断每一个节点的左右子节点是否平衡。

压栈思路:先左节点全入,然后左出右入,压完栈后再比较

特殊情况:空树为平衡树。

    public boolean isBalanced(TreeNode root) {        return helper(root)>=0;    }        public int helper(TreeNode root) {        if(root==null)            return 0;        int left=helper(root.left);        int right=helper(root.right);        if(Math.abs(left-right)>1)            return -1;        if(left<0||right<0)            return -1;        return Math.max(left, right)+1;    }


0 0
原创粉丝点击