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

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

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

示例 1:

示例 2:

class Solution {public:bool dfs(TreeNode* root,long lower,long upper){if(root==NULL)  # 如果该结点为NULL,直接返回1return 1;int vall = root->val;  # 计算该节点对应的值if(lower!=-LONG_MAX && vall<=lower)  # 如果右子节点小于父节点的值,则不是搜索二叉树return 0;if(upper!=LONG_MAX && vall>=upper)  # 如果左子节点大于父子节点的值,则不是搜索二叉树return 0;if(!dfs(root->right,vall,upper))  # 判断该结点的右子节点是否符合要求return 0;if(!dfs(root->left,lower,vall))  # 判断该节点的左子节点是否符合要求return 0;return 1;}bool isValidBST(TreeNode* root) {return dfs(root,-LONG_MAX,LONG_MAX);}
};

leetcode - 98. 验证二叉搜索树相关推荐

  1. Leetcode 98:验证二叉搜索树

    Leetcode 98:验证二叉搜索树 题目描述 我的解法:非递归的中序遍历 其它解法1:非递归的中序遍历,用LONG_MIN规避树的val等于INT_MIN的情况 其他解法2:递归的中序遍历思想 其 ...

  2. LeetCode 98. 验证二叉搜索树(中序遍历)

    文章目录 1. 题目信息 2. 解题 2.1 递归中序 2.2 非递归中序 1. 题目信息 给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于 ...

  3. leetcode —— 98. 验证二叉搜索树

    给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数. 节点的右子树只包含大于当前节点的数. 所有左子树和右子树自身必须也是二叉搜索 ...

  4. LeetCode 98 验证二叉搜索树

    题目链接:力扣 思路 递归 递归函数声明 bool isValidBST(TreeNode* root,int lower,int upper);//判断根节点是否在lower和upper之间 递归出 ...

  5. leetcode 98. 验证二叉搜索树 递归遍历左右子树和中序遍历 c语言解法

    如题: 给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数. 节点的右子树只包含大于当前节点的数. 所有左子树和右子树自身必须也是 ...

  6. Leetcode 98. 验证二叉搜索树 (每日一题 20210810)

    给定一个二叉树,判断其是否是一个有效的二叉搜索树.假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数. 节点的右子树只包含大于当前节点的数. 所有左子树和右子树自身必须也是二叉搜索树. ...

  7. LeetCode 98. 验证二叉搜索树 思考分析

    题目 给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数. 节点的右子树只包含大于当前节点的数. 所有左子树和右子树自身必须也是二 ...

  8. LeetCode 98. 验证二叉搜索树(递归)(迭代)

    题目描述 给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数. 节点的右子树只包含大于当前节点的数. 所有左子树和右子树自身必须也 ...

  9. Leetcode 98. 验证二叉搜索树 解题思路及C++实现

    解题思路: 分别验证root的左右子树是否是二叉树,同时,左子树的最大值要小于root->val,右子树的最小值要大于root->val. 在左右子树中,一直向root的左子树探索,就能得 ...

最新文章

  1. Failed to resolve:com.android.support:appcompat-v7:27.+
  2. php checkbox美化,纯CSS3美化radio和checkbox_html/css_WEB-ITnose
  3. 7-24 约分最简分式 (C语言)
  4. 也许你所知道的学习方法都是错的
  5. RLC协议简单理解1-RLC报文格式
  6. JSON快速转C#实体类
  7. 删除计算机系学生的选课记录6,天津理工大学+数据库实验二.doc
  8. 相约转型新范式,第四范式2021发布会报名开启
  9. vForum 2011 Beijing现场图文播报一
  10. 因云而生,全新视角看阿里云服务器硬件方升架构
  11. 阿里P7架构师要求:Web核心+开源框架+大型网站架构!含面试题目!
  12. 2021年度最佳开源软件榜单出炉!
  13. [转载]apache rewrite规则
  14. 三维曲线图的绘制方法大全
  15. excel VBA编程番外篇(字典+正则表达式+FSO)-曾贤志-专题视频课程
  16. 扫描全能王?原来图像技术可以这样子玩
  17. selenium模拟登录163邮箱,定位账号及密码输入框问题和iframe嵌套
  18. openlayers4+中台风路径播放优化
  19. 二叉树的先序遍历(C++)
  20. RGCN - Modeling Relational Data with Graph Convolutional Networks 使用图卷积网络对关系数据进行建模 ESWC 2018

热门文章

  1. Mongodb 与sql 语句对照
  2. 泛型那点儿事儿 泛型概述 简单样例代码
  3. 我要去三清山国家公园。。。
  4. GitHub 标星 1.6w+,我发现了一个宝藏项目,推荐大家学习
  5. BlockChain:区块链入门课程 -- 区块链之类型 、应用程序、技术挑战和潜力
  6. #Tomcat# 本地正常但是部署到服务器后,mysql插入中文乱码问题解决!
  7. 【Liunx】Linux vi/vim 教程
  8. C#设计模式之18-备忘录模式
  9. php 三元预算? :_项目预算:一种反模式
  10. mysql 不显示消息错误_如何编写不吸的错误消息