题目描述
给定一个二叉树,判断它是否是高度平衡的二叉树。
本题中,一棵高度平衡二叉树定义为:
一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。
算法思路1
从顶向底递归
- 构造一个二叉树高度的函数,返回二叉树的最大高度。
- 判断二叉树是否平衡 满足两个条件
- (1)本身的子树高度差不超过2(2) 左右子树的高度不超过2(左右子树也是平衡二叉树)
代码
class Solution {
public boolean isBalanced(TreeNode root) {
if (root == null) return true;
return Math.abs(depth(root.left) - depth(root.right))