剑指Offer—39—平衡二叉树

来源:互联网 发布:linux 查找文件命令 编辑:程序博客网 时间:2024/06/10 18:02

平衡二叉树:输入一棵二叉树,判断该二叉树是否是平衡二叉树。

package A39平衡二叉树;class TreeNode {    int val = 0;    TreeNode left = null;    TreeNode right = null;    public TreeNode(int val) {        this.val = val;    }}public class Solution {    //首先获取左右子树的深度    //左右差距大于1则不是平衡的    public boolean IsBalanced_Solution(TreeNode root) {        if (root == null){            return true;        }        int left = getDepth(root.left);        int right = getDepth(root.right);        int diff = left - right;        if (diff > 1 || diff < -1){            return false;        }        return IsBalanced_Solution(root.left) && IsBalanced_Solution(root.right);    }    public int getDepth(TreeNode treeNode){        if (treeNode == null){            return 0;        }        int left = getDepth(treeNode.left);        int right = getDepth(treeNode.right);        return left > right ? left+1:right+1;    }}