【力扣】[热题 HOT100] 98.验证二叉搜索树
发布日期:2021-05-10 06:34:00 浏览次数:16 分类:技术文章

本文共 1035 字,大约阅读时间需要 3 分钟。

1.题目

给定一个二叉树,判断其是否是一个有效的二叉搜索树。

假设一个二叉搜索树具有如下特征:

节点的左子树只包含小于当前节点的数。

节点的右子树只包含大于当前节点的数。
所有左子树和右子树自身必须也是二叉搜索树。

链接:

2.思路分析

  • 递归
  • 因为是二叉树,所以想到的第一个方法就是递归
  • 先遍历找左子树中不符合的情况,在找右子树中不符合的情况
  • 这里采用的是一个边界值(LONG_MIN,LONG_MAX)
  • 每次递归的时候,更改边界值,对于超出边界值的节点,一定是不是二叉搜索树

3.代码展示

/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode() : val(0), left(nullptr), right(nullptr) {} *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} * }; */class Solution {
public: bool func(TreeNode* root, long long lower, long long upper) {
if(root == nullptr){
return true; } if(root->val <= lower || root->val >= upper){
return false; } return func(root->left, lower, root->val) && func(root->right, root->val, upper); } bool isValidBST(TreeNode* root) {
return func(root, LONG_MIN, LONG_MAX); }};

转载地址:https://blog.csdn.net/weixin_43967449/article/details/115732750 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【力扣】[热题 HOT100] 101.对称二叉树
下一篇:【C++】智能指针详解及原理简单说明

发表评论

最新留言

很好
[***.229.124.182]2024年08月30日 20时41分01秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

2020年高教社杯全国大学生数学建模竞赛赛题 B题分析与思路!(持续更新) 2019-05-24
蓝桥杯真题 18省4-测试次数 x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机。 各大厂商也就纷纷推出各种耐摔型手机。x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐 2019-05-24
蓝桥杯真题 19省3-数列求值 给定数列 1, 1, 1, 3, 5, 9, 17, …,从第 4 项开始,每项都是前 3 项的和。求第 20190324 项的最后 4 位数字。 2019-05-24
蓝桥杯真题 19省4-数的分解 把 2019 分解成 3 个各不相同的正整数之和,并且要求每个正整数都不包含数字 2 和 4,一共有多少种不同的分解方法? 注意交换 3 个整数的顺 2019-05-24
蓝桥杯真题 19省Ca3-最大降雨量 由于沙之国长年干旱,法师小明准备施展自己的一个神秘法术来求雨。 这个法术需要用到他手中的 49 张法术符,上面分别写着 1 至 49 这 49 个数字。法术一 2019-05-24
蓝桥杯模拟题 20模2-3-单词重排 将LANQIAO中的字母重新排列,可以得到不同的单词,如LANQIAO、AAILNOQ等,注意这7个字母都要被用上,单词不一定有具体的英文意义。   请问,总 2019-05-24
大小写字母转换函数tolower();的用法 2019-05-24
蓝桥杯 15校4-7对数字 今有7对数字:两个1,两个2,两个3,...两个7,把它们排成一行。 要求,两个1间有1个其它数字,两个2间有2个其它数字,以此类推,两个7之间有7个其它数字。如下就是 2019-05-24
蓝桥杯 算法训练 - 寂寞的数 道德经曰:一生二,二生三,三生万物。   对于任意正整数n,我们定义d(n)的值为为n加上组成n的各个数字的和。例如,d(23)=23+2+3=28, d(1481 2019-05-24
蓝桥杯真题 17省10-k倍区间 给定一个长度为N的数列,A1, A2, ... AN,如果其中一段连续的子序列Ai, Ai+1, ... Aj(i <= j)之和是K的倍数,我们就称这个区间[i 2019-05-24
Flink的架构以及任务调度流程 2019-05-24
可靠传输的原理:停止等待协议、ARQ协议;TCP协议的可靠传输 2019-05-24
TCP协议的流量控制 2019-05-24
TCP连接的三次握手过程,为什么不是两次或四次? 2019-05-24
小白都能看懂的DNS解析过程 2019-05-24
HTTP和HTTPS的区别?描述HTTPS的工作过程 2019-05-24
简述一下HTTP的状态码 2019-05-24
20210227vulhub靶场之环境配置---无法获得靶机IP的疑难解决方式(可以解决VBox和VMware不兼容问题) 2019-05-24
20210215web渗透学习之跨路由扫描 2019-05-24
20210226web渗透学习之SSRF总结 2019-05-24