题目

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

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

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

示例 1:

输入:2/ \1   3
输出: true

示例 2:

输入:5/ \1   4/ \3   6
输出: false
解释: 输入为: [5,1,4,null,null,3,6]。根节点的值为 5 ,但是其右子节点值为 4 。

题解

这道题目主要是利用二叉搜索树的一个性质:
二叉搜索树的中序遍历结果是一个升序的序列。
那么问题转变成:中序遍历 + 验证是不是升序.

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/
class Solution {private List<Integer> inPrint(TreeNode root, List<Integer> res) {if (root != null) {inPrint(root.left, res);res.add(root.val);inPrint(root.right, res);}return res;}public boolean isValidBST(TreeNode root) {List<Integer> res = inPrint(root, new LinkedList<>());if (res.size() == 1) {return true;}for (int i = 1; i < res.size(); i++) {if (res.get(i) <= res.get(i - 1)) {return false;}}return true;}
}

【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. 验证二叉搜索树(递归)(迭代)

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

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

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

最新文章

  1. 首款VR全身触控体验套件Teslasuit,让你浑身“来电”
  2. yolov5改进VariFocalNet
  3. DP 状态机模型 AcWing算法提高课 详解
  4. 立镖机器人浙江_立镖在美国获2020 NextGen供应链解决方案奖
  5. 作者:陈兴鹏(1963-),男,兰州大学资源环境学院教授、博士生导师。
  6. Windows 10三月更新补丁竟高达3.99TB
  7. BP的matlab实现
  8. 【转】Mysql索引最左匹配原则理解
  9. VOA 2009.11.19-教育报道-美国大学创入学记录新高
  10. 同一批人做的产品,一年跟十年,产品质量不会有任何变化
  11. 机器学习中的数据预处理方法与步骤
  12. Linux60个小时速成
  13. php支付宝接口开发提现,ThinkPHP3.2集成 “单笔提现到支付宝账号接口”
  14. 答题拿奖两不误:华为云知乎金牌答题官,就是你!
  15. MongoDB的用户管理总结
  16. 开源私有云盘python_搭建Windows版Seafile开源私有云盘
  17. 二叉平衡树 之 红黑树 (手动模拟实现)
  18. 2、按键检测例程-FPGA-个人实验总结
  19. 基于MATLAB的GMSK调制解调系统的设计仿真
  20. 【用CSS让单行文本溢出显示省略号】

热门文章

  1. Codeforces7C 扩展欧几里得
  2. 【学习笔记】WAMP
  3. 《编程之美》第2刷勘误
  4. Linux安装SQLite轻量级数据库
  5. mongdo通用类(C#版)
  6. GridView 控件编程的事件
  7. 问题六十三:怎么用ray tracing画sphere sweeping图形
  8. git revert 之后怎么撤销_Git 如何优雅地回退代码
  9. 郴州大数据产业招商会在深举行,中琛源科技签约智慧水务项目
  10. 通过AT指令实现ESP8266模块和TCP服务器的数据传输