剑指 Offer 55 - II. 平衡二叉树

时间:2021-04-12 12:06:54   收藏:0   阅读:0

题目:

输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。

 

示例 1:

给定二叉树 [3,9,20,null,null,15,7]

    3
   /   9  20
    /     15   7

返回 true 。

示例 2:

给定二叉树 [1,2,2,3,3,null,null,4,4]

       1
      /      2   2
    /    3   3
  /  4   4

返回 false 。

 

限制:

代码:

 1 //和第55题相似,只不过在求得左右子树高度时,判断高度差是否超过1.
 2 /**
 3  * Definition for a binary tree node.
 4  * public class TreeNode {
 5  *     int val;
 6  *     TreeNode left;
 7  *     TreeNode right;
 8  *     TreeNode(int x) { val = x; }
 9  * }
10  */
11 class Solution {
12     static boolean bool=true;
13     public boolean isBalanced(TreeNode root) {
14         bool=true;
15         maxDepth(root);
16         return bool;
17     }
18 
19     public static int maxDepth(TreeNode root) {
20 
21     if(root==null){
22         return 0;
23     }
24     int left=maxDepth(root.left);
25     int right=maxDepth(root.right);
26     if(Math.abs(left-right)>1){bool=false;} //与55题差异之处
27     return Math.max(left,right)+1;
28     }
29 }

 

技术图片

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!