LeetCode热题100-验证二叉搜索树

📅 2026/7/10 0:02:06 👁️ 阅读次数 📝 编程学习
LeetCode热题100-验证二叉搜索树

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

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

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

示例 1:

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

逻辑

  • 初始根节点范围:(-∞, +∞)
  • 遍历左孩子:最大值收缩为当前节点值
  • 遍历右孩子:最小值收缩为当前节点值
  • 一旦越界,不是合法 BST
class Solution: def isValidBST(self, root: Optional[TreeNode]) -> bool: def check(node, low, high): if not node: return True if node.val <= low or node.val >= high: return False return check(node.left, low, node.val) and check(node.right, node.val, high) return check(root, float("-inf"), float("inf"))