📅  最后修改于: 2023-12-03 15:38:50.134000             🧑  作者: Mango
在计算机科学中,二叉搜索树(Binary Search Tree,简称BST)是一种常用的数据结构。它是用于保持元素集合的关联数组。这个结构具有能对元素进行快速查找、插入和删除的特点。但是,有些时候我们需要检查一棵二叉树是否是BST。下面我们将会介绍如何检查二叉树是否为BST。
二叉搜索树除了具有二叉树的结构特点外,还有以下BST特点:
二叉树是否为BST的判断,最基本的思想就是利用中序遍历。中序遍历BST得到的结果是有序序列,因此如果二叉树的中序遍历结果是有序的,那么就可以判断它是BST。
下面提供一个 Python 版本的程序:
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
def isValidBST(root: TreeNode) -> bool:
if not root:
return True
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 程序。