leetcode98.验证二叉搜索树

标签:二叉搜索树;中序遍历

给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。

有效 二叉搜索树定义如下:

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

示例 1:

复制代码
输入:root = [2,1,3]
输出:true

示例 2:

复制代码
输入:root = [5,1,4,null,null,3,6]
输出:false
解释:根节点的值是 5 ,但是右子节点的值是 4 。

思路:根据二叉搜索树中序遍历是严格升序序列解题

java 复制代码
List<Integer> list=new ArrayList<>();
    public boolean isValidBST(TreeNode root) {
        inorderTraversal(root);
        for(int i=0;i<list.size()-1;i++){
            if(list.get(i+1)<=list.get(i))
                return false;
        }
        return true;
    }

    public List<Integer> inorderTraversal(TreeNode root) {
        if(root==null)
            return list;
        inorderTraversal(root.left);
        list.add(root.val);
        inorderTraversal(root.right);
        return list;
    }
相关推荐
Genevieve_xiao4 分钟前
【差分】差分的理解与基础题型总结
数据结构·c++·算法
舟舟亢亢5 分钟前
算法总结——【技巧,ACM模式输入】
算法
智者知已应修善业8 分钟前
【无序数组指针交换2则】2024-10-28
c语言·数据结构·c++·经验分享·笔记·算法
一叶落4389 分钟前
LeetCode 136. 只出现一次的数字(C语言详解 | 哈希表 + 排序 + 位运算)
c语言·数据结构·算法·leetcode·哈希算法·散列表
古译汉书11 分钟前
【数据结构算法】二分查找
c语言·开发语言·数据结构·c++·算法
逆境不可逃12 分钟前
【从零入门23种设计模式19】行为型之观察者模式
java·开发语言·算法·观察者模式·leetcode·设计模式·动态规划
小龙报14 分钟前
【算法通关指南:算法基础篇】二分答案专题:1.木材加工 2.砍树
c语言·数据结构·c++·算法·启发式算法
cici1587426 分钟前
经典的基于策略迭代和值迭代法的动态规划MATLAB实现
算法·matlab·动态规划
月明长歌26 分钟前
【码道初阶-Hot100】 LeetCode 49. 字母异位词分组:从排序哈希到分组映射,彻底讲透为什么排序后可以作为同一组的标识
算法·leetcode·哈希算法
Q一件事32 分钟前
结构方程相关
python·算法·机器学习