zoukankan      html  css  js  c++  java
  • [LC] 98. Validate Binary Search Tree

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

    Assume a 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.

    Example 1:

        2
       / 
      1   3
    
    Input: [2,1,3]
    Output: true
    

    Example 2:

        5
       / 
      1   4
         / 
        3   6
    
    Input: [5,1,4,null,null,3,6]
    Output: false
    Explanation: The root node's value is 5 but its right child's value is 4.

    Time: O(N)
    Space: O(N)

     1 # Definition for a binary tree node.
     2 # class TreeNode:
     3 #     def __init__(self, x):
     4 #         self.val = x
     5 #         self.left = None
     6 #         self.right = None
     7 
     8 class Solution:
     9     def isValidBST(self, root: TreeNode) -> bool:
    10         import sys
    11         right_bound = sys.maxsize
    12         left_bound = -sys.maxsize - 1
    13         return self.helper(root, left_bound, right_bound)
    14         
    15     def helper(self, root, left_bound, right_bound):
    16         if root is None:
    17             return True
    18         if root.val <= left_bound or root.val >= right_bound:
    19             return False
    20         # 1. left child's child cannot larger than current node val
    21         # 2. right child's child cannot be small than current node val
    22         return self.helper(root.left, left_bound, root.val) and self.helper(root.right, root.val, right_bound)
    23         
    24         
    25         
    26         
    
    
    
     
  • 相关阅读:
    ubuntu挂载群晖共享文件
    200. 岛屿数量_中等_不再记笔记了
    733. 图像渲染_简单_矩阵
    46. 全排列_中等_模拟
    37. 解数独_困难_矩阵
    1041. 困于环中的机器人_中等_模拟
    946. 验证栈序列
    415. 字符串相加_简单_模拟
    164. 最大间距_数组_困难
    215. 数组中的第K个最大元素_中等_数组
  • 原文地址:https://www.cnblogs.com/xuanlu/p/11683776.html
Copyright © 2011-2022 走看看