Sword to Offer-55.2 平衡二叉树 ❀❀
in Algorithm
- 题目描述:
统计一个数字在排序数组中出现的次数。
解题思路:
递归求子树深度,两边深度差小于等于1
判定为平衡二叉树。
AC代码:
// Judge If Is a Balance Binary Tree
public class Solution {
private boolean isBalance = true;
public boolean IsBalanced_Solution(TreeNode root) {
calculateHeight(root);
return isBalance;
}
private int calculateHeight(TreeNode root) {
if (root == null) {
return 0;
}
int left = calculateHeight(root.left);
int right = calculateHeight(root.right);
if (Math.abs(left-right) > 1) {
isBalance = false;
}
return 1 + Math.max(left, right);
}
}
补充说明:
注意:
isBalance
方法返回的int
值只是为了递归流程,判断二叉树是否平衡的参数是isBalance
。这里是牛客编码链接