题目描述
给定一个二叉树,判断它是否是 平衡二叉树
解题思想
使用递归依次计算左子树的高度和右子树的高度
代码
class Solution {
public:int height(TreeNode* node) {if (node == nullptr) return 0;int leftT = height(node->left);if (leftT == -1) return -1;int rightT = height(node->right);if (rightT == -1) return -1;if (abs(leftT - rightT) > 1) return -1;elsereturn 1 + max(leftT, rightT);}bool isBalanced(TreeNode* root) {return height(root) == -1 ? false : true;}
};