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

简介: 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。有效 二叉搜索树定义如下:节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。-2^31 <= Node.val <= 2^31 - 1

 题目

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

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

    • 节点的左子树只包含 小于 当前节点的数。
    • 节点的右子树只包含 大于 当前节点的数。
    • 所有左子树和右子树自身必须也是二叉搜索树。
    • -2^31 <= Node.val <= 2^31 - 1

    解题思路

      1. 需要当前节点的值和父节点作比较,所以基础方法无法满足需要对方法进行重载或建立新的函数;
      2. val的值超出Integer.MAX_VALUE所以需要通过Long的最大最小值来进行初始化赋值;
      3. 循环结束条件,当前节点为空;
      4. 限定当前节点val的取值范围,并进行递归循环。

      代码展示

      class Solution {
          public boolean isValidBST(TreeNode root) {
              return isVaild(root, Long.MIN_VALUE, Long.MAX_VALUE);
          }
          public boolean isVaild(TreeNode root, long min, long max){
              if (root == null) {
                  return true;
              }
              long x = root.val;
              return min < x && x < max && isVaild(root.left, min, x) && isVaild(root.right, x, max);
          }
      }

      image.gif


      目录
      相关文章
      |
      3月前
      |
      存储 Java API
      【Azure 存储服务】Java Storage SDK 调用 uploadWithResponse 代码示例(询问ChatGTP得代码原型后人力验证)
      【Azure 存储服务】Java Storage SDK 调用 uploadWithResponse 代码示例(询问ChatGTP得代码原型后人力验证)
      |
      26天前
      |
      存储 网络协议 前端开发
      在 Java 中如何完全验证 URL
      在 Java 中如何完全验证 URL
      75 8
      |
      24天前
      【LeetCode 45】701.二叉搜索树中的插入操作
      【LeetCode 45】701.二叉搜索树中的插入操作
      9 1
      |
      24天前
      【LeetCode 44】235.二叉搜索树的最近公共祖先
      【LeetCode 44】235.二叉搜索树的最近公共祖先
      13 1
      |
      24天前
      【LeetCode 48】108.将有序数组转换为二叉搜索树
      【LeetCode 48】108.将有序数组转换为二叉搜索树
      34 0
      |
      24天前
      【LeetCode 47】669.修剪二叉搜索树
      【LeetCode 47】669.修剪二叉搜索树
      8 0
      |
      24天前
      【LeetCode 46】450.删除二叉搜索树的节点
      【LeetCode 46】450.删除二叉搜索树的节点
      10 0
      |
      24天前
      【LeetCode 42】501.二叉搜索树中的众数
      【LeetCode 42】501.二叉搜索树中的众数
      8 0
      |
      24天前
      【LeetCode 41】530.二叉搜索树的最小绝对差
      【LeetCode 41】530.二叉搜索树的最小绝对差
      9 0
      |
      24天前
      【LeetCode 40】98.验证二叉搜索树
      【LeetCode 40】98.验证二叉搜索树
      10 0