题解 | #判断是不是二叉搜索树#

判断是不是二叉搜索树

https://www.nowcoder.com/practice/a69242b39baf45dea217815c7dedb52b

# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param root TreeNode类 
# @return bool布尔型
# 第一段条件不清晰,第二段不能判断左子树中存在大于根节点情况和右子树中存在小于根节点情况,第三段正确
class Solution:
    '''def isValidBST(self , root: TreeNode) -> bool:
        if not root:
            return True
        if not root.left or not root.right:
            if not root.left and root.right:
                if root.val <= root.right.val:
                    return True
                else:
                    return False
            elif not root.right and root.left:
                if root.val >= root.left.val:
                    return True
                else:
                    return False
        elif not root.left and not root.right and root:
            return True       
        
        if root.left.val <= root.val <= root.right.val:
            self.isValidBST(root.left)
            self.isValidBST(root.right)
        else:
            return False
        return True

    def isValidBST(self , root: TreeNode) -> bool:
        if not root:
            return True
        
        if root.left and root.left.val >= root.val:
            return False
        
        if root.right and root.right.val <= root.val:
            return False
        
        if not self.isValidBST(root.left) or not self.isValidBST(root.right):
            return False
            
        return True'''
    def helper(self, root, min_val, max_val):
        if not root:
            return True
        
        if root.val <= min_val or root.val >= max_val:
            return False
        
        return (self.helper(root.left, min_val, root.val) and 
                self.helper(root.right, root.val, max_val))    
    def isValidBST(self, root: TreeNode) -> bool:
        return self.helper(root, float('-inf'), float('inf'))

全部评论

相关推荐

02-02 17:27
已编辑
北京邮电大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务