Description:
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.
判断是不是二叉平衡树,递归还是递归。
/** * Definition for a binary tree node. * 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 l = getDepth(root.left, 1); int r = getDepth(root.right, 1); if(Math.abs(l-r) > 1) { return false; } else { return isBalanced(root.left) && isBalanced(root.right); } } public int getDepth(TreeNode root, int depth) { if(root == null) { return depth; } else { return Math.max(getDepth(root.left, depth+1), getDepth(root.right, depth+1)); } } }