题目:
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.
思路:
题目的大意是【判断一个二叉树是不是平衡二叉树 首先了解平衡二叉树的概念:只有根节点是,或者左右节点的深度只差不大于1 因为二叉树本身是一个递归的结构,所以二叉树的好多问题使可以用递归解决的,考虑root和root.left以及root.right的关系
代码:
/**
* 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 ;
}
if (Math.abs(depth(root.left)-depth(root.right)) > 1 ){
return false ;
}
return isBalanced(root.left)&&isBalanced(root.right);
}
public int depth (TreeNode root){
if (root == null ){
return 0 ;
}
return 1 +Math.max(depth(root.left),depth(root.right));
}
}