题目: 1Given a binary tree, determine if it is height-balanced. 2 3For 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. 4 思路: 题目的大意是【判断一个二叉树是不是平衡二叉树 首先了解平衡二叉树的概念:只有根节点是,或者左右节点的深度只差不大于1 因为二叉树本身是一个递归的结构,所以二叉树的好多问题使可以用递归解决的,考虑root和root.left以及root.right的关系 代码: 1/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ 2public class Solution { 3 public boolean isBalanced(TreeNode root) { 4 if(root == null){ 5 return true; 6 } 7 if(Math.abs(depth(root.left)-depth(root.right)) > 1){ 8 return false; 9 } 10 return isBalanced(root.left)&&isBalanced(root.right); 11 } 12 public int depth(TreeNode root){ 13 if(root == null){ 14 return 0; 15 } 16 return 1+Math.max(depth(root.left),depth(root.right)); 17 } 18}