
【力扣】[热题 HOT100] 98.验证二叉搜索树
发布日期:2021-05-10 06:34:00
浏览次数:3
分类:技术文章
本文共 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2023年12月06日 05时20分37秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
电子学会机器人等级考试有什么用?
2019-03-28
无需编程的BEAM昆虫积木机器人~适合小孩子的益智DIY小制作
2019-03-28
带你轻松玩转神奇Micro:bit开发板的Max:Bot机器人!
2019-03-28
【备忘】MATLAB连接SQL教程
2019-03-28
打开m文件会重新打开matlab的解决方法
2019-03-28
Lanchester方程平方律matlab仿真
2019-03-28
单兵种直瞄武器交战的Lanchester方程
2019-03-28
多兵种直瞄武器交战的Lanchester方程
2019-03-28
最优控制中的变分法
2019-03-28
最优控制中极小值原理及其应用
2019-03-28
一个简单的微分对策问题求解及其Matlab实现
2019-03-28
用PyGame实现贪吃蛇游戏
2019-03-28
单兵种对多兵种作战的微分对策模型
2019-03-28
变量提升与函数提升的优先级
2019-03-28
前端请求后端数据显示404
2019-03-28
关键字final 和static
2019-03-28
Java中方法的定义、传参、重载与递归
2019-03-28
Java中的集合框架(JCF)
2019-03-28
Visual Studio 提示“发生生成错误,是否继续并运行上次的成功生成?”解决办法
2019-03-28