面试总结之 树

题目:输入一棵二叉树的根结点,判断该树是不是平衡二叉树。如果某二叉树中任意结点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。 
 int getHeight(Node node){
   if(node==null){
      return 0;
   }
   int heigth = 1;
   if(node.left!=null){
      height = 1+getHeight(node.left);
  }
   if(node.rigth!=null){
      int h = 1+getHeight(node.right);
      height = height>h?height:h;
   }
  return height;
}

boolean isBalance(Node node){
   if(node==null){
     return true;
   }
   int left = getHeight(node.left);
   int right = getHeight(node.right);
   int diff = left - right;
    if(diff > 1 || diff < -1)
        return false;
   return isBalance(node.left)&&isBalance(node.right);
}

 

posted on 2013-07-19 02:16  brave_bo  阅读(136)  评论(0)    收藏  举报

导航