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);
        }
    }
}

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

相关推荐
独自破碎E3 分钟前
【前缀和+哈希】LCR_011_连续数组
算法·哈希算法
一条大祥脚10 分钟前
26.1.26 扫描线+数论|因子反演+子序列计数|树套树优化最短路
数据结构·算法
m0_5613596712 分钟前
基于C++的机器学习库开发
开发语言·c++·算法
星空露珠19 分钟前
速算24点所有题库公式
开发语言·数据库·算法·游戏·lua
2401_8324027521 分钟前
C++中的类型擦除技术
开发语言·c++·算法
努力学习的小廉29 分钟前
我爱学算法之—— 递归回溯综合(二)
开发语言·算法
sheji526130 分钟前
JSP基于信息安全的读书网站79f9s--程序+源码+数据库+调试部署+开发环境
java·开发语言·数据库·算法
2301_7634724630 分钟前
C++网络编程(Boost.Asio)
开发语言·c++·算法
依依yyy35 分钟前
沪深300指数收益率波动性分析与预测——基于ARMA-GARCH模型
人工智能·算法·机器学习
踩坑记录1 小时前
leetcode hot100 23. 合并 K 个升序链表 hard 分治 迭代
leetcode·链表