110. 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 a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { private int dfsHeight(TreeNode root){ if(root==null)return 0; int leftHeight=dfsHeight(root.left); if(leftHeight==-1)return -1; int rightHeight=dfsHeight(root.right); if(rightHeight==-1)return -1; if(Math.abs(leftHeight-rightHeight)>1)return -1; return leftHeight>rightHeight?(leftHeight+1):(rightHeight+1); } public boolean isBalanced(TreeNode root) { int a=dfsHeight(root); if(a==-1)return false; return true; } }