检查树是否为二进制搜索树(Binary Search Tree, BST)是一种常见的树结构问题。二进制搜索树是一种有序的二叉树,其中每个节点的值大于其左子树中的所有节点的值,且小于其右子树中的所有节点的值。
为了检查给定的树是否为二进制搜索树,可以使用递归或迭代的方法进行验证。以下是一种递归的解决方案:
以下是一个示例的Python代码实现:
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def is_valid_bst(root):
def helper(node, min_val, max_val):
if not node:
return True
if node.val <= min_val or node.val >= max_val:
return False
return helper(node.left, min_val, node.val) and helper(node.right, node.val, max_val)
return helper(root, float('-inf'), float('inf'))
这个函数接受一个根节点作为输入,并返回一个布尔值,表示给定的树是否为二进制搜索树。
应用场景:
推荐的腾讯云相关产品:
请注意,以上链接仅作为示例,具体的产品选择应根据实际需求和情况进行评估和决策。
领取专属 10元无门槛券
手把手带您无忧上云