判断是否是有效的二叉搜索树,即左子树的值小于根结点,右子树的值大于根结点。可以采用递归的方式来完成,递归时如何
传递有效的参数与根结点进行比较,是此题的难点。
bool isValidBST(TreeNode *root)
{
isValidBST(root, INT_MIN, INT_MAX);
}
bool isValidBST(TreeNode *root, int lower, int upper)
{
return (root->val > lower && root->val < upper) && isValidBST(root->left, lower, root->val) &&
isValidBST(root->right, root->val, upper); }