// 引入min和max
// 左子树结点的最大值一定小于root->val
// 右子树结点的最小值一定大于root->val
bool isValidBSTSub(struct TreeNode *node, int min, int max) {
if (NULL == node) return true;
if (node->val < min || node->val > max) return false;
if (node->left && node->left->val > node->val) return false;
if (node->right && node->right->val < node->val) return false;
return isValidBSTSub(node->left, min, node->val) && isValidBSTSub(node->right, node->val, max);
}
bool isValidBST(struct TreeNode* root){
return isValidBSTSub(root, LONG_MIN, LONG_MAX);
}
leetcode:98. 验证二叉搜索树
最新推荐文章于 2023-06-05 15:27:39 发布