美文网首页LeetCode
98. 验证二叉搜索树

98. 验证二叉搜索树

作者: 凌霄文强 | 来源:发表于2019-03-11 14:10 被阅读0次

题目描述

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

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

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

输入:

    2
   / \
  1   3

输出: true
示例 2:

输入:

    5
   / \
  1   4
     / \
    3   6

输出: false
解释: 输入为: [5,1,4,null,null,3,6]。
根节点的值为 5 ,但是其右子节点值为 4 。

知识点

二叉树、递归


Qiang的思路

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
    def isValidBST(self, root: TreeNode, min=None, max=None) -> bool:
        if root==None:
            return True
        if max!=None:
            if root.val>=max:
                return False
        if min!=None:
            if root.val<=min:
                return False
        return self.isValidBST(root.left, min, root.val) and self.isValidBST(root.right, root.val, max)

作者原创,如需转载及其他问题请邮箱联系:lwqiang_chn@163.com
个人网站:https://www.myqiang.top

相关文章

网友评论

    本文标题:98. 验证二叉搜索树

    本文链接:https://www.haomeiwen.com/subject/mzzvpqtx.html