leetcode刷题日志-98.验证二叉搜索树

思路:根据二叉搜索树的性质,中序遍历满足升序。那么我们就可以使用中序dfs,并且记录每个节点的前一个节点的值,如果前一个节点值比后一个大,返回false。

复制代码
class Solution {
    Integer pre = null; //记录前序节点
    boolean isValid = true;
    public boolean isValidBST(TreeNode root) {
        dfs(root);
        return isValid;
    }
    public void dfs(TreeNode root)
    {
        if(root == null)
        return;
        else{
            dfs(root.left);
            if(pre == null){
                pre = root.val;
            }
            else if(pre >= root.val){ //如果前序大于当前,置为false
                isValid = false;
            }
            else{
                pre = root.val;
            }
            dfs(root.right);
        }
    }
}

递归一看就会一写就废,同学们多练习,多思考,多理解即可

相关推荐
程序员-King.13 分钟前
链表——算法总结与新手教学指南
数据结构·算法·链表
Ulyanov38 分钟前
战场地形生成与多源数据集成
开发语言·python·算法·tkinter·pyside·pyvista·gui开发
FMRbpm1 小时前
树的练习6--------938.二叉搜索树的范围和
数据结构·c++·算法·leetcode·职场和发展·新手入门
wubba lubba dub dub7501 小时前
第三十三周 学习周报
学习·算法·机器学习
C+-C资深大佬1 小时前
C++数据类型
开发语言·c++·算法
多米Domi0111 小时前
0x3f 第35天 电脑硬盘坏了 +二叉树直径,将有序数组转换为二叉搜索树
java·数据结构·python·算法·leetcode·链表
想逃离铁厂的老铁2 小时前
Day45 >> 115、不同的子序列 + 583. 两个字符串的删除操作 + 72. 编辑距离
算法·leetcode
cyyt2 小时前
深度学习周报(1.12~1.18)
人工智能·算法·机器学习
范纹杉想快点毕业2 小时前
C语言核心机制全解:内存、地址、数组与指针,共计30000字
算法
Σίσυφος19002 小时前
RANSAC算法原理与应用
算法