Balanced Binary Tree

来源:互联网 发布:gec虚拟币源码 编辑:程序博客网 时间:2024/06/07 15:37

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.

Java代码:

/** * Definition for binary tree * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */public class Solution {   public boolean isBalanced(TreeNode root) {        if(root == null){            return true;        }                int depthOfLeft = getDepth(root.left, 1);        int depthOfRight = getDepth(root.right, 1);                if(Math.abs(depthOfRight-depthOfLeft) > 1){            return false;        }else{            return isBalanced(root.left) && isBalanced(root.right);        }    }        private int getDepth(TreeNode tree, int currentDepth){        if(tree == null){            return currentDepth;        }        return Math.max(getDepth(tree.left, currentDepth+1),                 getDepth(tree.right, currentDepth+1));    }}

 

0 0