Description:
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.
Solution:
先dfs求出每个节点的做右子树的深度,然后想减大于1就表示不平衡,用一个“全局”的布尔类型变量记录一下。
import java.util.*;
public class Solution {
boolean flag = true;
public boolean isBalanced(TreeNode root) {
depth(root);
return flag;
}
int depth(TreeNode root) {
if (root == null)
return 0;
int left_dep = depth(root.left);
int right_dep = depth(root.right);
if (Math.abs(left_dep - right_dep) > 1)
flag = false;
return Math.max(left_dep, right_dep) + 1;
}
}