class Solution {
public:
bool isValidBST(TreeNode* root) {
return isValidBST(root,INT_MIN - 1l,INT_MAX + 1l);
}
bool isValidBST(TreeNode* &root,long int pre,long int after) {
if(!root) return true;
return (pre < root->val) && (after >root->val) && isValidBST(root->left,pre,root->val) && isValidBST(root->right,root->val,after);
}
};
public:
bool isValidBST(TreeNode* root) {
return isValidBST(root,INT_MIN - 1l,INT_MAX + 1l);
}
bool isValidBST(TreeNode* &root,long int pre,long int after) {
if(!root) return true;
return (pre < root->val) && (after >root->val) && isValidBST(root->left,pre,root->val) && isValidBST(root->right,root->val,after);
}
};
本文介绍了一种通过递归方法验证二叉搜索树是否有效的算法实现。该方法利用了二叉搜索树的特性,即左子树的所有节点值小于根节点值,右子树的所有节点值大于根节点值,并通过设定上下界来判断每个节点是否符合二叉搜索树的定义。

被折叠的 条评论
为什么被折叠?



