原题链接
题目描述
判断一棵二叉树是不是平衡二叉树(每个节点的左右子树高度差不超过1)
解题思路
思路比较简单,就是遍历每一个节点,比较左右子树的高度,如果有任何一个节点的高度差超过了1,那么就不是平衡二叉树
所以解题的关键步骤在于获取子树的高度,代码如下:
public int getHeight(TreeNode node) {
if (!res)
return 0;
if (node == null)
return 0;
int left = getHeight(node.left);
int right = getHeight(node.right);
if (Math.abs(left - right) > 1)
res = false;
return Math.max(left, right) + 1; //获取最大高度
}