首页 > 其他 > 详细

Balanced Binary Tree

时间:2015-04-09 15:16:58      阅读:271      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!