Balanced Binary Tree
2015-04-09 14:14 笨笨的老兔子 阅读(108) 评论(0) 收藏 举报判断一棵二叉树是否是平衡树
看到二叉树的题目,基本都可以用递归的思想求解。对于判断是否是一棵平衡树可分为以下几个步骤:
- 计算左子树和右子树的高度差是否大于1,是则返回false
- 判断左子树是否是平衡树,判断右子树是否是平衡树
class Solution {public:bool isBalanced(TreeNode *root){if (root == NULL)return true;else{int left = depth(root->left);int right = depth(root->right);if (abs(left - right) > 1)return false;return isBalanced(root->left) && isBalanced(root->right);}}int depth(TreeNode* root){if (root == NULL)return 0;elsereturn max(depth(root->left), depth(root->right)) + 1;}};
浙公网安备 33010602011771号