39平衡二叉树
问题描述:
输入一棵二叉树,判断该二叉树是否是平衡二叉树。
在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树
平衡二叉树(Balanced Binary Tree),具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。
注:我们约定空树是平衡二叉树。
题目分析:
计算二叉树左右子节点的最大深度,然后进行比较,若相差小于1则继续比较其子树,直到所有都为平衡二叉树的时候才为真
代码实现:
package com.xu.fingeroffer.forty;
import com.xu.fingeroffer.node.TreeNode;
public class 二叉树的深度38 {
public int TreeDepth(TreeNode root) {
if(root==null){
return 0;
}
return Math.max(TreeDepth(root.left),TreeDepth(root.right))+1;
}
}