• leetcode_98. 验证二叉搜索树


    给定一个二叉树,判断其是否是一个有效的二叉搜索树。
    
    假设一个二叉搜索树具有如下特征:
    
    节点的左子树只包含小于当前节点的数。
    节点的右子树只包含大于当前节点的数。
    所有左子树和右子树自身必须也是二叉搜索树。
    示例 1:
    
    输入:
        2
       / 
      1   3
    输出: true
    示例 2:
    
    输入:
        5
       / 
      1   4
         / 
        3   6
    输出: false
    解释: 输入为: [5,1,4,null,null,3,6]。
         根节点的值为 5 ,但是其右子节点值为 4 。
    
    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/validate-binary-search-tree
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
    
    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, val=0, left=None, right=None):
    #         self.val = val
    #         self.left = left
    #         self.right = right
    #递归
    import sys
    class Solution:
        def isValidBST(self, root: TreeNode) -> bool:
            max_num=sys.maxsize
            min_num=-sys.maxsize-1
    
            def helper(root:TreeNode,minval,maxval)->bool:
                if not root:
                    return True
                if root.val>=maxval or root.val<=minval:
                    return False
                return helper(root.left,minval,root.val) and helper(root.right,root.val,maxval)
    
            return helper(root,min_num,max_num)
    
    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, val=0, left=None, right=None):
    #         self.val = val
    #         self.left = left
    #         self.right = right
    import sys
    class Solution:
        prew=-sys.maxsize-1
        def isValidBST(self, root: TreeNode) -> bool:
            if(root==None):
                return True
            if not self.isValidBST(root.left):#左子树
                return False
            if self.prew>=root.val:
                return False
            self.prew=root.val
            if not self.isValidBST(root.right):#右子树
                return False
            return True
    
  • 相关阅读:
    Mac 安装实用开发软件和日常软件清单
    Docker zabbix-agent 监控 docker tomcat 多实例
    zabbix 组件监控概述
    实况8操作指南
    关于哲哲跳舞这件小事儿
    左耳听风笔记摘要(11-12)程序的异常处理
    左耳听风笔记摘要(07-10)推荐书单/Go/Docker
    从零开始的vue学习笔记(一)
    简述Spark工作流程
    opengl简单入门实例
  • 原文地址:https://www.cnblogs.com/hqzxwm/p/14153618.html
Copyright © 2020-2023  润新知