LeetCode第98题 - 有效的括号

题目

解答

方案一

class Solution {
   
    public boolean isValidBST(TreeNode root) {
   
        if (root == null) {
   
            return true;
        }

        if (root.left == null && root.right == null) {
   
            return true;
        }

        if (root.left != null && root.left.val >= root.val) {
   
            return false;
        }

        if (root.right != null && root.right.val <= root.val) {
   
            return false;
        }

        return isValidBST(root.left) && isValidBST(root.right);
    }
}

方案二

class Solution {
   
    public boolean isValidBST(TreeNode root) {
   
        return validate(root, Long.MIN_VALUE, Long.MAX_VALUE);
    }

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

要点
二叉搜索树中的任意节点,均满足如下条件:

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

粗看上去,方案一似乎可以满足要求,但实际上并不是,方案一没有完整验证1和2两个条件。
另外从代码量的规模看,方案二用较少的代码量,完成了更多的特性,更加优雅。

相关推荐

  1. LeetCode98 - 有效括号

    2024-01-05 19:22:03       39 阅读
  2. LeetCode20 - 有效括号

    2024-01-05 19:22:03       41 阅读
  3. [ LeetCode ] 刷刷(Python)-20有效括号

    2024-01-05 19:22:03       14 阅读
  4. Leetcode有效括号

    2024-01-05 19:22:03       10 阅读
  5. LeetCode100】20. 有效括号(栈)

    2024-01-05 19:22:03       21 阅读
  6. LeetCodeHot100 - 有效括号

    2024-01-05 19:22:03       10 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-05 19:22:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-05 19:22:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-05 19:22:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-05 19:22:03       18 阅读

热门阅读

  1. (一)为什么要选择C++

    2024-01-05 19:22:03       33 阅读
  2. Linux 系统 find 命令详解

    2024-01-05 19:22:03       32 阅读
  3. 11. C++ inline函数消除重定义

    2024-01-05 19:22:03       35 阅读
  4. cocos creator人开发小游戏免费素材资源

    2024-01-05 19:22:03       36 阅读
  5. 算法:简单加密

    2024-01-05 19:22:03       30 阅读
  6. 快速搭建 linux 源码调试环境

    2024-01-05 19:22:03       37 阅读
  7. 什么是Vue-响应式数据

    2024-01-05 19:22:03       35 阅读
  8. 2023年终总结

    2024-01-05 19:22:03       30 阅读
  9. LeetCode 28.找出字符串中第一个匹配项的下标

    2024-01-05 19:22:03       46 阅读