问题描述

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

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

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

示例 1:

示例2:

解题思路:

二叉搜索树的定义:
1.二叉搜索树的左子树的所有结点的值都小于根节点,右子树的所有结点的值都大于根节点
2.二叉搜索树的左右子树均是一棵二叉树
由此,可以用递归的思路来验证二叉搜索树
二叉搜索树的重要性质:
二叉搜索树的中序遍历序列是有序的
由此可以对二叉搜索树进行遍历,然后判断其是否有序

代码实现1:中序遍历

class Solution {//使用集合来保存中序遍历序列private List<Integer> list;//使用result来表示中序遍历的结果private boolean result;public void MidOrder(TreeNode p){if(p!=null){MidOrder(p.left);     //如果序列中没有元素,就把该遍历到的元素添加进去          if(list.size()==0){             list.add(p.val);//System.out.println(p.val);//否则的话,如果该值比序列中的最后一个元素的值还要小,就表明形成的序列无序。//故将result置为false并返回}else if(p.val<=list.get(list.size()-1)){System.out.println(p.val+" "+list.get(list.size()-1));result=false;return ;}else{list.add(p.val);}MidOrder(p.right);   }}public boolean isValidBST(TreeNode root) {result=true;            //初始假设是一棵二叉搜索树list=new ArrayList<Integer>();MidOrder(root);return result;}
}

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

  1. 【Leetcode】98. 验证二叉搜索树

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

  2. [Leetcode总结] 98.验证二叉搜索树

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

  3. leetcode系列-98.验证二叉搜索树

    题目描述:给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树.有效 二叉搜索树定义如下:节点的左子树只包含 小于 当前节点的数. 节点的右子树只包含 大于 当前节点的数. 所有左子树 ...

  4. 【LeetCode】【HOT】98. 验证二叉搜索树(递归)

    [LeetCode][HOT]98. 验证二叉搜索树 文章目录 [LeetCode][HOT]98. 验证二叉搜索树 package hot;class TreeNode{int val;TreeNo ...

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

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

  6. 20190914:(leetcode习题)验证二叉搜索树

    验证二叉搜索树 题目 大致思路 代码实现 题目 大致思路 直接利用中序遍历的代码进行修改,将中序遍历按顺序存放入数组,按照中序的特点和二叉搜索树的特点,得到的数组应该是有序的,并且是升序的.最后进行判 ...

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

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

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

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

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

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

最新文章

  1. 如何给Linux操作系统(CentOS 7为例)云服务器配置环境等一系列东西
  2. IDEA中 @override报错的解决方法
  3. 窗口尺寸,文档高,元素宽高的获取方式
  4. mongodb副本集搭建
  5. elasticsearch集群选举源码解析
  6. nssm在服务器上的使用超详细说明
  7. 人工智能代码自动生成技术的一点思考
  8. 队列(纯C语言实现)
  9. java-UI设计(仿QQ登录界面)
  10. JavaScript经典笔试题
  11. 【日常】python脚本系列:拳皇13一键出招以及连段实现
  12. 个人陈述怎么写计算机专业自招,高三自主招生个人陈述范文(最新)
  13. 读书笔记——《柯维的智慧》格言
  14. python 爬虫下载网易歌单歌曲
  15. html实现鼠标跟随,html5实现鼠标跟随
  16. 移动广告平台KeyMob:整合多家主流手机广告平台
  17. 多麦克风做拾音的波束_乱侃外设 篇四十二:一浪更比一浪强!HyperX Quadcast S 声浪加强版麦克风浅评...
  18. 基于蓝牙与Android设备的控制系统设计
  19. (转) maven 依赖com.google.code.kaptcha
  20. HTML5 批量大文件上传下载

热门文章

  1. 网友投诉顺丰快递员私拆快递物品摆拍、言语骚扰 官方处理来了...
  2. ffmpeg rtp传输使用
  3. go的优势--链表与结构体使用
  4. [资料整理]记一下英特尔atom处理器
  5. oracle:用户购买平台案例分析与优化
  6. Eclipse创建springboot项目的方式
  7. html改变占位字符的颜色,使用CSS更改HTML5输入的占位符颜色
  8. 【Flink】 Flink 源码之 SQL 执行流程
  9. 【Elasticsearch】搜索引擎从0到1 有赞 视频笔记
  10. 【Elasticsearch】使用Elasticsearch 7.8 快速搭建食谱搜索系统