递归做法:
这道题最好结合树的深度那道题做。
二叉树深度
在树的深度中,我们已经得到了一个求解树的深度的递归函数。
在本题中,我们可以设一个boolean值,在递归求解深度的函数中,顺便加上一个判断:即若左子树和右子树的高度相差大于1,则不平衡,布尔值变为false
boolean flag = true;
public boolean IsBalanced_Solution(TreeNode root) {
if (root == null) {
return true;
}
dfs(root);
return flag;
}
private int dfs(TreeNode root) {
if (root == null) {
return 0;
}
int left = dfs(root.left);
int right = dfs(root.right);
if (Math.abs(left - right) > 1) {
flag = false;
}
return 1 + Math.max(left, right);
}


京公网安备 11010502036488号