输入一棵二叉树,判断该二叉树是否是平衡二叉树。
平衡二叉树 每个结点的左右子树的深度相差不超过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 };

 

相关文章:

  • 2021-05-21
  • 2022-01-18
  • 2021-10-12
  • 2021-04-20
  • 2022-12-23
  • 2021-09-14
猜你喜欢
  • 2022-12-23
  • 2021-09-07
  • 2022-02-21
  • 2022-12-23
  • 2022-03-04
相关资源
相似解决方案