当前位置:网站首页>力扣98:验证二叉搜索树
力扣98:验证二叉搜索树
2022-07-04 21:29:00 【瀛台夜雪】
力扣98:验证二叉搜索树
题目描述
给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。
有效 二叉搜索树定义如下:
节点的左子树只包含 小于 当前节点的数。
节点的右子树只包含 大于 当前节点的数。
所有左子树和右子树自身必须也是二叉搜索树。
输入输出样例
输入:root = [2,1,3]
输出:true
输入:root = [5,1,4,null,null,3,6]
输出:false
解释:根节点的值是 5 ,但是右子节点的值是 4 。
解法1:使用递归的思想实现
bool isValid(TreeNode *root,long long lower,long long upper)
{
if(root==nullptr)
{
return true;
}
if(root->val<=lower||root->val>=upper)
{
return false;
}
return isValid(root->left,lower,root->val)&&isValid(root->right,root->val,upper);
}
//使用递归的思想进行实现
bool isValidBST(TreeNode* root)
{
return isValid(root,LONG_MIN,LONG_MAX);
}
解法2:使用中序遍历
中序遍历二叉搜索树得到的也是一个升序的数组
//根据二叉搜索树中序遍历时升序的性质进行实现
bool isValidBST2(TreeNode* root)
{
if(!root)
{
return true;
}
stack<TreeNode *>stk;
vector<int>res;
while(!stk.empty()||root!=nullptr)
{
while(root!=nullptr)
{
stk.push(root);
root=root->left;
}
TreeNode *temp;
temp=stk.top();
// cout<<temp->val<<" ";
res.push_back(temp->val);
stk.pop();
root=temp->right;
}
int length=res.size();
for(int i=1;i<length;i++)
{
if(res[i]<=res[i-1])
{
return false;
}
}
return true;
}
边栏推荐
- Application practice | Shuhai supply chain construction of data center based on Apache Doris
- vim 从嫌弃到依赖(23)——最后的闲扯
- How was MP3 born?
- SolidWorks工程图添加材料明细表的操作
- Bizchart+slider to realize grouping histogram
- Sorting and sharing of selected papers, systems and applications related to the most comprehensive mixed expert (MOE) model in history
- VS2019 C# release下断点调试
- Word文档中标题前面的黑点如何去掉
- 面试官:说说XSS攻击是什么?
- 巅峰不止,继续奋斗!城链科技数字峰会于重庆隆重举行
猜你喜欢
TCP协议三次握手过程
Shutter textfield example
如何使用ConcurrentLinkedQueue做一个缓存队列
How was MP3 born?
[early knowledge of activities] list of recent activities of livevideostack
保证接口数据安全的10种方案
QT - plot other problems
Exclusive interview of open source summer | new committer Xie Qijun of Apache iotdb community
GTEST from ignorance to proficiency (3) what are test suite and test case
做BI开发,为什么一定要熟悉行业和企业业务?
随机推荐
旋变串判断
迈动互联中标北京人寿保险
时空预测3-graph transformer
Golang interview finishing three resumes how to write
输入的查询SQL语句,是如何执行的?
Le module minidom écrit et analyse XML
Master the use of auto analyze in data warehouse
Liu Jincheng won the 2022 China e-commerce industry innovation Figure Award
Bookmark
Flutter TextField示例
Redis03 - network configuration and heartbeat mechanism of redis
el-tree结合el-table,树形添加修改操作
How was MP3 born?
HDU - 2859 Phalanx(DP)
QT - double buffer plot
How to implement Devops with automatic tools
HDU - 1078 FatMouse and Cheese(记忆化搜索DP)
2022 version of stronger jsonpath compatibility and performance test (snack3, fastjson2, jayway.jsonpath)
MongoDB聚合操作总结
[weekly translation go] how to code in go series articles are online!!