【Leetcode】98. 验证二叉搜索树
题目
给定一个二叉树,判断其是否是一个有效的二叉搜索树。
假设一个二叉搜索树具有如下特征:
- 节点的左子树只包含小于当前节点的数。
- 节点的右子树只包含大于当前节点的数。
- 所有左子树和右子树自身必须也是二叉搜索树。
示例 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. 验证二叉搜索树相关推荐
- Leetcode 98:验证二叉搜索树
Leetcode 98:验证二叉搜索树 题目描述 我的解法:非递归的中序遍历 其它解法1:非递归的中序遍历,用LONG_MIN规避树的val等于INT_MIN的情况 其他解法2:递归的中序遍历思想 其 ...
- LeetCode 98. 验证二叉搜索树(中序遍历)
文章目录 1. 题目信息 2. 解题 2.1 递归中序 2.2 非递归中序 1. 题目信息 给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于 ...
- leetcode —— 98. 验证二叉搜索树
给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数. 节点的右子树只包含大于当前节点的数. 所有左子树和右子树自身必须也是二叉搜索 ...
- LeetCode 98 验证二叉搜索树
题目链接:力扣 思路 递归 递归函数声明 bool isValidBST(TreeNode* root,int lower,int upper);//判断根节点是否在lower和upper之间 递归出 ...
- leetcode 98. 验证二叉搜索树 递归遍历左右子树和中序遍历 c语言解法
如题: 给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数. 节点的右子树只包含大于当前节点的数. 所有左子树和右子树自身必须也是 ...
- Leetcode 98. 验证二叉搜索树 (每日一题 20210810)
给定一个二叉树,判断其是否是一个有效的二叉搜索树.假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数. 节点的右子树只包含大于当前节点的数. 所有左子树和右子树自身必须也是二叉搜索树. ...
- LeetCode 98. 验证二叉搜索树 思考分析
题目 给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数. 节点的右子树只包含大于当前节点的数. 所有左子树和右子树自身必须也是二 ...
- leetcode - 98. 验证二叉搜索树
给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数. 节点的右子树只包含大于当前节点的数. 所有左子树和右子树自身必须也是二叉搜索 ...
- LeetCode 98. 验证二叉搜索树(递归)(迭代)
题目描述 给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数. 节点的右子树只包含大于当前节点的数. 所有左子树和右子树自身必须也 ...
- Leetcode 98. 验证二叉搜索树 解题思路及C++实现
解题思路: 分别验证root的左右子树是否是二叉树,同时,左子树的最大值要小于root->val,右子树的最小值要大于root->val. 在左右子树中,一直向root的左子树探索,就能得 ...
最新文章
- 首款VR全身触控体验套件Teslasuit,让你浑身“来电”
- yolov5改进VariFocalNet
- DP 状态机模型 AcWing算法提高课 详解
- 立镖机器人浙江_立镖在美国获2020 NextGen供应链解决方案奖
- 作者:陈兴鹏(1963-),男,兰州大学资源环境学院教授、博士生导师。
- Windows 10三月更新补丁竟高达3.99TB
- BP的matlab实现
- 【转】Mysql索引最左匹配原则理解
- VOA 2009.11.19-教育报道-美国大学创入学记录新高
- 同一批人做的产品,一年跟十年,产品质量不会有任何变化
- 机器学习中的数据预处理方法与步骤
- Linux60个小时速成
- php支付宝接口开发提现,ThinkPHP3.2集成 “单笔提现到支付宝账号接口”
- 答题拿奖两不误:华为云知乎金牌答题官,就是你!
- MongoDB的用户管理总结
- 开源私有云盘python_搭建Windows版Seafile开源私有云盘
- 二叉平衡树 之 红黑树 (手动模拟实现)
- 2、按键检测例程-FPGA-个人实验总结
- 基于MATLAB的GMSK调制解调系统的设计仿真
- 【用CSS让单行文本溢出显示省略号】