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

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

相关推荐
副露のmagic11 分钟前
更弱智的算法学习 day9
python·学习·算法
ULTRA??13 分钟前
RUST是移动语义与copy trait
算法·rust
小O的算法实验室14 分钟前
2022年AEI SCI1区TOP,用蚁群算法求解无人机配送车辆路径规划问题,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
迈巴赫车主15 分钟前
蓝桥杯 20531黑客java
java·开发语言·数据结构·算法·职场和发展·蓝桥杯
leoufung16 分钟前
LeetCode 427:Construct Quad Tree 题解与两种思路对比
算法·leetcode·职场和发展
sin_hielo23 分钟前
leetcode 3531
数据结构·算法·leetcode
zmzb010324 分钟前
C++课后习题训练记录Day48
数据结构·c++·算法
小毅&Nora28 分钟前
【后端】【工具】短信短链接如何做到“永不丢失“?从哈希冲突到百万QPS的可靠性设计
算法·哈希算法
qy-ll28 分钟前
Leetcode100题逐题详解
数据结构·python·学习·算法·leetcode