自学内容网 自学内容网

C++——验证二叉搜索树leetcode98

C++——验证二叉搜索树leetcode98

题目描述

给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。
有效 二叉搜索树定义如下:
节点的左子树只包含 小于 当前节点的数。
节点的右子树只包含 大于 当前节点的数。
所有左子树和右子树自身必须也是二叉搜索树。

思路

迭代,如果当前节点为空,则true,如果当前节点的值小于等于左边的最大值,或者大于等于右边的最小值,则false,并对左右子树更新左右边界,

代码

bool isValidBST(TreeNode* root)
{
return isV(root, LLONG_MIN, LLONG_MAX);
}
bool isV(TreeNode* root, long max_left, long min_right)
{
if(!root) return true;
if(root->val<=max_left || root->val>=min_right) return false;
return isV(root->left, max_left, root->val) && isV(root->right, root->val, min_right);
}

原文地址:https://blog.csdn.net/qq_50737873/article/details/140676665

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!