当前位置:网站首页>LeetCode_98_验证二叉搜索树
LeetCode_98_验证二叉搜索树
2022-07-30 13:55:00 【Fitz1318】
题目链接
题目描述
给你一个二叉树的根节点 root
,判断其是否是一个有效的二叉搜索树。
有效 二叉搜索树定义如下:
- 节点的左子树只包含 小于 当前节点的数。
- 节点的右子树只包含 大于 当前节点的数。
- 所有左子树和右子树自身必须也是二叉搜索树。
示例 1:
输入:root = [2,1,3]
输出:true
示例 2:
输入:root = [5,1,4,null,null,3,6]
输出:false
解释:根节点的值是 5 ,但是右子节点的值是 4 。
提示:
- 树中节点数目范围在
[1, 10^4]
内 -2^(31) <= Node.val <= 2^(31) - 1
解题思路
二叉搜索树的中序遍历是一个数值递增的有序序列
AC代码
递归法
class Solution {
TreeNode pre = null;
public boolean isValidBST(TreeNode root) {
if(root == null){
return true;
}
boolean left = isValidBST(root.left);
if(pre != null && pre.val>= root.val){
return false;
}
pre = root;
boolean right = isValidBST(root.right);
return left && right;
}
}
迭代法
class Solution {
public boolean isValidBST(TreeNode root) {
if (root == null) {
return true;
}
Stack<TreeNode> stack = new Stack<>();
TreeNode pre = null;
while (root != null || !stack.isEmpty()) {
while (root != null) {
stack.push(root);
root = root.left;
}
TreeNode tmp = stack.pop();
if (pre != null && tmp.val <= pre.val) {
return false;
}
pre = tmp;
root = tmp.right;
}
return true;
}
}
边栏推荐
- ARC117E Zero-Sum Ranges 2
- 我为何从开发人员转做测试,3年软件测试工程师,带你聊聊这其中的秘辛
- 百家号取消接口发文功能:插外链获权重被堵死
- Digital signal processing course lab report (what foundation is needed for digital signal processing)
- CF1320E Treeland and Viruses
- Hello,World
- Cookie simulation login "recommended collection"
- [ARC092D] Two Faced Edges
- 经典测试面试题集—逻辑推理题
- (论文翻译]未配对Image-To-Image翻译使用Cycle-Consistent敌对的网络
猜你喜欢
重保特辑|拦截99%恶意流量,揭秘WAF攻防演练最佳实践
吃透Chisel语言.28.Chisel进阶之有限状态机(二)——Mealy状态机及与Moore状态机的对比
Logic Vulnerability----Permission Vulnerability
(HR Interview) Most Common Interview Questions and Skilled Answers
新时代背景下智慧城市的建设与5G技术有何关联
跳槽前,把自己弄成卷王
权威推荐!腾讯安全DDoS边缘安全产品获国际研究机构Omdia认可
记面试外包公司的一次经历,到底该不该去?
以unity3d为例解读:游戏数据加密
华为7年经验的软件测试总监,给所有想转行学软件测试的朋友几点建议
随机推荐
什么是缺陷分析?一篇文章带你了解,测试工程师必备技能
重保特辑|筑牢第一道防线,云防火墙攻防演练最佳实践
43.【list链表的定义及初始化】
CF1677E Tokitsukaze and Beautiful Subsegments
时间序列的数据分析(四):STL分解
新时代背景下智慧城市的建设与5G技术有何关联
【Pytorch】如何在关闭batch-norm的同时保持Dropout的开启
selenium4+pyetsst+allure+pom进行自动化测试框架的最新设计
吃透Chisel语言.28.Chisel进阶之有限状态机(二)——Mealy状态机及与Moore状态机的对比
Allure进阶-动态生成报告内容
接口自动化框架,lm-easytest内测版发布,赶紧用起来~
LeetCode二叉树系列——102.二叉树的层序遍历
吃透Chisel语言.29.Chisel进阶之通信状态机(一)——通信状态机:以闪光灯为例
Teach you how to write an eye-catching software testing resume, if you don't receive an interview invitation, I will lose
机器学习在竞赛和工业界应用区别
eclipse连接SQL server数据库「建议收藏」
[ARC092D] Two Faced Edges
Remember an experience of interviewing an outsourcing company, should you go?
redis6.0 源码学习(五)ziplist
Synology system installation related file sharing