BST

LeetCode 98 Validate Binary Search Tree (Python)

Posted by 小明MaxMing on December 16, 2020

题目

Given the root of a binary tree, determine if it is a valid binary search tree (BST).

A valid BST is defined as follows:

  • The left subtree of a node contains only nodes with keys less than the node’s key.
  • The right subtree of a node contains only nodes with keys greater than the node’s key.
  • Both the left and right subtrees must also be binary search trees.

解题思路

使用DFS遍历树,遍历的时候向下传上下界,根据上下界判断是否符合要求

代码

class Solution:
    def isValidBST(self, root: TreeNode) -> bool:
        def check(root, l, r):
            if root == None:
                return True
            val = root.val
            if val <= l or val >= r:
                return False
            return check(root.left, l, val) and check(root.right, val, r)
        return check(root, float('-inf'), float('inf'))

视频讲解 YouTube<--欢迎点击订阅

视频讲解 bilibili<--欢迎点击订阅