码迷,mamicode.com
首页 > 其他好文 > 详细

Balanced Binary Tree

时间:2015-04-09 15:18:20      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:

判断一棵二叉树是否是平衡树

看到二叉树的题目,基本都可以用递归的思想求解。对于判断是否是一棵平衡树可分为以下几个步骤:

  1. 计算左子树和右子树的高度差是否大于1,是则返回false
  2. 判断左子树是否是平衡树,判断右子树是否是平衡树
  1. class Solution {
  2. public:
  3. bool isBalanced(TreeNode *root)
  4. {
  5. if (root == NULL)
  6. return true;
  7. else
  8. {
  9. int left = depth(root->left);
  10. int right = depth(root->right);
  11. if (abs(left - right) > 1)
  12. return false;
  13. return isBalanced(root->left) && isBalanced(root->right);
  14. }
  15. }
  16. int depth(TreeNode* root)
  17. {
  18. if (root == NULL)
  19. return 0;
  20. else
  21. return max(depth(root->left), depth(root->right)) + 1;
  22. }
  23. };




Balanced Binary Tree

标签:

原文地址:http://www.cnblogs.com/flyjameschen/p/2afa7e15fcca0b7f32feb58e45ed8cd4.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!