平衡二叉树

来源:互联网 发布:网络大电影编号 编辑:程序博客网 时间:2024/05/19 20:41

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

思路:计算每个节点左右子树的高度,进行比较,差大于1说明不平衡,
这个代码有重复计算问题。

public class Solution {    public boolean IsBalanced_Solution(TreeNode root) {        if(root == null)            return true;        int left = judgeTreeBalance(root.left);        int right = judgeTreeBalance(root.right);        int diff = left - right;        if(diff > 1 || diff < - 1)            return false;        return IsBalanced_Solution(root.left) && IsBalanced_Solution(root.right);    }    public int judgeTreeBalance(TreeNode root){        if(root == null)            return 0;        int count = 1;        int left = judgeTreeBalance(root.left);        int right = judgeTreeBalance(root.right);        return count + (left > right ? left : right);     }}
原创粉丝点击