题目描述
输入一棵二叉树,判断该二叉树是否是平衡二叉树。
思路分析
如果某二叉树中任意节点的左、右子树的深度相差不超过 1 ,那么它就是一棵平衡二叉树。
解释说明:
public class Solution {
public boolean IsBalanced_Solution(TreeNode root) {
return getDepth(root) != -1;
}
private int getDepth(TreeNode root) {
if (root == null)
return 0;
int left = getDepth(root.left);
if (left == -1)
return -1; //如果发现子树不平衡之后就没有必要进行下面的高度的求解了
int right = getDepth(root.right);
if (right == -1)
return -1;//如果发现子树不平衡之后就没有必要进行下面的高度的求解了
return Math.abs(left - right) > 1 ? -1 : 1 + Math.max(left, right);
}
}
链接:https://www.nowcoder.com/questionTerminal/8b3b95850edb4115918ecebdf1b4d222?f=discussion
来源:牛客网
网友评论