力扣98---验证二叉搜索树

题目描述:

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

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

  • 节点的左

    子树

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

示例 1:

输入:root = [2,1,3]
输出:true

示例 2:

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

思路:

        对于二叉树,我们优先可以考虑一下递归实现,因为递归非常适合二叉树的解决。

代码:

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public boolean isValidBST(TreeNode root) {
        return isValidBST(root, Long.MIN_VALUE, Long.MAX_VALUE);
    }

    public boolean isValidBST(TreeNode node, long lower, long upper) {
        if (node == null) {
            return true;
        }
        if (node.val <= lower || node.val >= upper) {
            return false;
        }
        return isValidBST(node.left, lower, node.val) && isValidBST(node.right, node.val, upper);
    }
}

相关推荐

  1. 98. 验证搜索

    2024-03-26 10:34:05       36 阅读
  2. :98. 验证搜索

    2024-03-26 10:34:05       33 阅读
  3. 98验证搜索

    2024-03-26 10:34:05       17 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-26 10:34:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-26 10:34:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-26 10:34:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-26 10:34:05       20 阅读

热门阅读

  1. AI绘画自动生成器有哪些?

    2024-03-26 10:34:05       24 阅读
  2. 从零学算法208

    2024-03-26 10:34:05       14 阅读
  3. C#使用iText7画发票PDF——字体于自定义颜色

    2024-03-26 10:34:05       19 阅读
  4. 力扣由浅至深 每日一题.14 爬楼梯

    2024-03-26 10:34:05       17 阅读
  5. 短剧小程序系统cps分销开发搭建

    2024-03-26 10:34:05       19 阅读
  6. 前端vue2学习(事件处理)总结

    2024-03-26 10:34:05       17 阅读
  7. 二刷代码随想录——动态规划day57

    2024-03-26 10:34:05       31 阅读
  8. 安卓11系统RK3568 代码控制OTA

    2024-03-26 10:34:05       32 阅读
  9. 数据结构——顺序表(C语言版)

    2024-03-26 10:34:05       19 阅读
  10. 深入理解Elasticsearch高效原理

    2024-03-26 10:34:05       19 阅读
  11. 二刷代码随想录——单调栈day58

    2024-03-26 10:34:05       16 阅读
  12. 每天30分钟python(第一天)

    2024-03-26 10:34:05       16 阅读
  13. Vue 中的 computed 和 watch 的区别

    2024-03-26 10:34:05       20 阅读
  14. flutter项目使用ffi和原生交互问题积累

    2024-03-26 10:34:05       19 阅读
  15. Flutter中被屏蔽的概念,Scheduler(调度器)

    2024-03-26 10:34:05       18 阅读
  16. 医疗器械包装ASTM D4169 松散振动

    2024-03-26 10:34:05       16 阅读