zoukankan      html  css  js  c++  java
  • 98. 验证二叉搜索树

    98. 验证二叉搜索树

    给定一个二叉树,判断其是否是一个有效的二叉搜索树。

    假设一个二叉搜索树具有如下特征:

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

    示例 1:

    输入:
    2
    /
    1 3
    输出: true

    递归法

    # 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
    class Solution:
        def isValidBST(self, root):
            """
            :type root: TreeNode
            :rtype: bool
            """
            def helper(node, lower = float('-inf'), upper = float('inf')):
                if not node:
                    return True
                val = node.val
                if val <= lower or val >= upper:
                    return False
                return helper(node.left, lower, val) and helper(node.right, val, upper)
            return helper(root)
  • 相关阅读:
    SDN作业(4)
    SDN作业(3)
    第一次个人编程作业
    SDN作业(2)
    SDN作业(1)
    第一次博客作业
    浅谈闭包
    预编译And作用域链
    定时器
    window事件
  • 原文地址:https://www.cnblogs.com/lzk-seven/p/14277710.html
Copyright © 2011-2022 走看看