BST判断

作者: jojo1313 | 来源:发表于2021-07-07 14:34 被阅读0次

判断BST:
1.假如二叉树的左子树不为空,则左子树上所有节点的值均小于它的根节点的值; 假如右子树不空,则右子树上所有节点的值均大于它的根节点的值;它的左右子树也为二叉搜索树。
2.引入 无穷小float('-inf'), 无穷大float('inf')作为root值判断媒介

    def isValidBST(self, root):
        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
            if not helper(node.left, lower, val):
                return False
            if not helper(node.right, val, upper):
                return False
            
            return True
            
        return helper(root)

也可以用中序遍历思路判断是否为BST
从根节点开始append to list
从左子树末尾开始和比较 pop of list
然后再从右子树顶部append pop 逐次向下递归判断

    def isValidBST(self, root):
        stack,inorder=[],float('-inf')
        while stack or root:
            while root:
                stack.append(root)
                root = root.left
            root = stack.pop()
            if root.val <= inorder:
                return False
            inorder = root.val
            root = root.right

        return True

相关文章

  • BST判断

    判断BST:1.假如二叉树的左子树不为空,则左子树上所有节点的值均小于它的根节点的值; 假如右子树不空,则右子树上...

  • Validate Binary Search Tree

    medium Question 判断一个二叉树是否为,二叉搜索树(BST) Notes BST的特点: 节点的左支...

  • Leetcode.98.Validate Binary Sear

    题目 判断一个树是否是搜索二叉树(BST). BST满足以下条件:所有左子节点小于父节点, 所有右子节点大于父节点...

  • 判断是否是BST的后序遍历序列

    判断是否是BST的后序遍历序列 1.首先最后一个节点是根节点,根据BST的定义,从左到右查找第一个到大于跟节点的节...

  • [lintcode]95.验证二叉查找树

    描述 给定一个二叉树,判断它是否是合法的二叉查找树(BST)一棵BST定义为:节点的左子树中的值要严格小于该节点的...

  • LintCode 95. 验证二叉查找树

    题目描述 给定一个二叉树,判断它是否是合法的二叉查找树(BST) 一棵BST定义为:节点的左子树中的值要严格小于该...

  • 二叉搜索树(BST)

    BST简介 查询BST 插入和删除 #1. BST简介 BST(Binary Search Tree),二叉搜索树...

  • DLL ro BST BST to DLL

    已写bst to dll dll to bst

  • 判断一个树是否是BST 求一棵平衡二叉树的最小深度 判断一棵二叉树是否高度平衡

  • 二叉搜索树的节点删除

    BST示例代码如下: BST的元素删除 BST节点的前驱与后继搜索 某个BST节点的前驱,即为值比它小的最大的一个...

网友评论

      本文标题:BST判断

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