LeetCodeDiary

A Diary for solving LeetCode problems

View on GitHub
class Solution:
    def isValidBST(self, root: TreeNode) -> bool:
        def helper(node, lower = float('-inf'), upper = float('inf')) -> bool:
            if not node:
                return True
            
            val = node.val
            if val <= lower or val >= upper:
                return False

            if not helper(node.right, val, upper):
                return False
            if not helper(node.left, lower, val):
                return False
            return True

        return helper(root)

树,中等,官方解法👆

https://leetcode-cn.com/problems/validate-binary-search-tree/

class Solution:
    def isValidBST(self, root: TreeNode) -> bool:
        self.lastn = None
        return self.inOrder(root)
        # for i in range(len(self.inList)-1):
        #     if self.inList[i] > self.inList[i+1]:
        #         return F

    def inOrder(self,root):
        if not root:
            return True
        
        left = self.inOrder(root.left)
        
        if self.lastn != None:
            if root.val <= self.lastn:
                return False
        self.lastn = root.val

        right = self.inOrder(root.right)

        if left and right:
            return True
        else:
            return False

我写的屑解法,效率差不多👆