int getHight(struct TreeNode *root) {
if (root == NULL) return 0;
int r = getHight(root->right);
int l = getHight(root->left);
if (l == -2 || r == -2 || abs(l - r) > 1) return -2; //记忆化
return (l > r ? l : r) + 1; //子树平衡,返回最高子树高度
}
bool isBalanced(struct TreeNode* root){
return getHight(root) >= 0;
}
上一篇
力扣剑指Offer54、二叉搜索树的第k大节点
2021-08-05
下一篇
欧拉计划14之记忆化搜索
2021-08-04