39、平衡二叉树

一、题目

输入一棵二叉树,判断该二叉树是否是平衡二叉树。

二、解法

 1 public class Solution {
 2        private boolean isBalanced = true;
 3      public boolean IsBalanced_Solution(TreeNode root) {
 4      //后续遍历时,遍历到一个节点,其左右子树已经遍历  依次自底向上判断,每个节点只需要遍历一次
 5          getDepth(root);
 6          return isBalanced;
 7      }
 8      public int getDepth(TreeNode root){
 9          if(root == null)
10              return 0;
11          int left = getDepth(root.left);
12          int right = getDepth(root.right);
13          if(Math.abs(left - right) > 1)
14              isBalanced = false;
15          return right>left ? right+1 : left+1;
16      }
17 }

 

posted @ 2017-08-31 09:43  fankongkong  阅读(109)  评论(0编辑  收藏  举报