leetcode题解98-验证二叉搜索树
问题描述
给定一个二叉树,判断其是否是一个有效的二叉搜索树。
假设一个二叉搜索树具有如下特征:
节点的左子树只包含小于当前节点的数。
节点的右子树只包含大于当前节点的数。
所有左子树和右子树自身必须也是二叉搜索树。
示例 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-验证二叉搜索树相关推荐
- 【Leetcode】98. 验证二叉搜索树
题目 给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数. 节点的右子树只包含大于当前节点的数. 所有左子树和右子树自身必须也是二 ...
- [Leetcode总结] 98.验证二叉搜索树
给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数. 节点的右子树只包含大于当前节点的数. 所有左子树和右子树自身必须也是二叉搜索 ...
- leetcode系列-98.验证二叉搜索树
题目描述:给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树.有效 二叉搜索树定义如下:节点的左子树只包含 小于 当前节点的数. 节点的右子树只包含 大于 当前节点的数. 所有左子树 ...
- 【LeetCode】【HOT】98. 验证二叉搜索树(递归)
[LeetCode][HOT]98. 验证二叉搜索树 文章目录 [LeetCode][HOT]98. 验证二叉搜索树 package hot;class TreeNode{int val;TreeNo ...
- Leetcode 98:验证二叉搜索树
Leetcode 98:验证二叉搜索树 题目描述 我的解法:非递归的中序遍历 其它解法1:非递归的中序遍历,用LONG_MIN规避树的val等于INT_MIN的情况 其他解法2:递归的中序遍历思想 其 ...
- 20190914:(leetcode习题)验证二叉搜索树
验证二叉搜索树 题目 大致思路 代码实现 题目 大致思路 直接利用中序遍历的代码进行修改,将中序遍历按顺序存放入数组,按照中序的特点和二叉搜索树的特点,得到的数组应该是有序的,并且是升序的.最后进行判 ...
- leetcode 98. 验证二叉搜索树 递归遍历左右子树和中序遍历 c语言解法
如题: 给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数. 节点的右子树只包含大于当前节点的数. 所有左子树和右子树自身必须也是 ...
- LeetCode 98. 验证二叉搜索树(中序遍历)
文章目录 1. 题目信息 2. 解题 2.1 递归中序 2.2 非递归中序 1. 题目信息 给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于 ...
- leetcode —— 98. 验证二叉搜索树
给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数. 节点的右子树只包含大于当前节点的数. 所有左子树和右子树自身必须也是二叉搜索 ...
最新文章
- 如何给Linux操作系统(CentOS 7为例)云服务器配置环境等一系列东西
- IDEA中 @override报错的解决方法
- 窗口尺寸,文档高,元素宽高的获取方式
- mongodb副本集搭建
- elasticsearch集群选举源码解析
- nssm在服务器上的使用超详细说明
- 人工智能代码自动生成技术的一点思考
- 队列(纯C语言实现)
- java-UI设计(仿QQ登录界面)
- JavaScript经典笔试题
- 【日常】python脚本系列:拳皇13一键出招以及连段实现
- 个人陈述怎么写计算机专业自招,高三自主招生个人陈述范文(最新)
- 读书笔记——《柯维的智慧》格言
- python 爬虫下载网易歌单歌曲
- html实现鼠标跟随,html5实现鼠标跟随
- 移动广告平台KeyMob:整合多家主流手机广告平台
- 多麦克风做拾音的波束_乱侃外设 篇四十二:一浪更比一浪强!HyperX Quadcast S 声浪加强版麦克风浅评...
- 基于蓝牙与Android设备的控制系统设计
- (转) maven 依赖com.google.code.kaptcha
- HTML5 批量大文件上传下载
热门文章
- 网友投诉顺丰快递员私拆快递物品摆拍、言语骚扰 官方处理来了...
- ffmpeg rtp传输使用
- go的优势--链表与结构体使用
- [资料整理]记一下英特尔atom处理器
- oracle:用户购买平台案例分析与优化
- Eclipse创建springboot项目的方式
- html改变占位字符的颜色,使用CSS更改HTML5输入的占位符颜色
- 【Flink】 Flink 源码之 SQL 执行流程
- 【Elasticsearch】搜索引擎从0到1 有赞 视频笔记
- 【Elasticsearch】使用Elasticsearch 7.8 快速搭建食谱搜索系统