Balanced Binary Tree

Given a binary tree, determine if it is height-balanced.

For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.

判斷樹的左右子樹高度是否均衡 只要分別測出左右子樹的深度即可 要注意的是 題目其實要求各子樹也滿足此條件才返回TRUE所以要對各個節點進行判斷 代碼如下;

public class Solution {
    public boolean isBalanced(TreeNode root) {
        if(root==null)return true;
        if(supisBalanced(root)){
            return isBalanced(root.left)&&isBalanced(root.right);
        }else{
            return false;
        }
    }
    public boolean supisBalanced(TreeNode root) {
        if(root==null)return true;
        int l=deepth(root.left);
        int r=deepth(root.right);
        if(l-r>=-1&&l-r<=1)return true;
        return false;
    }
    public int deepth(TreeNode root){
        if(root==null)return 0;
        if(root.left==null&&root.right==null)return 1;
        int res=0;
        res=1+Math.max(deepth(root.left),deepth(root.right));
        return res;
    }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章