39-2 判断是不是平衡二叉树

输入一棵二叉树,判断该二叉树是否是平衡二叉树。
平衡二叉树 每个结点的左右子树的深度相差不超过1

解法一:采用后序遍历的方式遍历整棵二叉树 只用遍历一次结点

 

C++:

 1 class Solution {
 2 private: bool isBalance = true ;
 3 public:
 4     bool IsBalanced_Solution(TreeNode* root) {
 5         height(root) ;
 6         return isBalance ;
 7     }
 8     
 9     int height(TreeNode* root) {
10         if (root == NULL)
11             return 0 ;
12         int left = height(root->left) ;
13         int right = height(root->right) ;
14         if (abs(left-right) > 1){
15             isBalance = false ;
16         }
17         return max(left , right) + 1 ;
18     }
19 };

 

posted @ 2018-05-10 18:54  __Meng  阅读(325)  评论(0编辑  收藏  举报