1. 题目描述
输入一棵二叉树,判断该二叉树是否是平衡二叉树。
在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树。
2. 解题思路
(1)一看到题目,首先考虑什么是平衡二叉树,然后结合题目可以知道只需要判断左右子树距离根结点的大小即可。(平衡二叉树左右子树高度差不超过 1)。
(2)。。。
3. 代码实现
(1)
public class Solution {
private boolean result = true;
public boolean IsBalanced_Solution(TreeNode root) {
height(root);
return result;
}
private int height(TreeNode root){
if(root == null || !result)
return 0;
int left = height(root.left);
int right = height(root.right);
if(Math.abs(left - right) > 1)
result = false;
return 1 + Math.max(left, right);
}
}
(2)
思考中…。。