写一个通过中序遍历判断是否为二叉搜索树的代码
时间: 2023-06-03 22:07:49 浏览: 78
以下为判断二叉树是否为二叉搜索树的 Python 代码:
```python
class TreeNode:
def __init__(self, value):
self.val = value
self.left = None
self.right = None
def is_bst(root, min_val=float('-inf'), max_val=float('inf')):
if root is None:
return True
if root.val <= min_val or root.val >= max_val:
return False
return is_bst(root.left, min_val, root.val) and is_bst(root.right, root.val, max_val)
# 测试代码
if __name__ == '__main__':
root = TreeNode(5)
root.left = TreeNode(2)
root.right = TreeNode(9)
root.left.left = TreeNode(1)
root.left.right = TreeNode(3)
root.right.left = TreeNode(7)
root.right.right = TreeNode(10)
print(is_bst(root)) # True
```
以上代码中,is_bst() 函数使用递归方式判断二叉树是否为二叉搜索树。对于每个节点,它的左子树的所有节点要小于当前节点的值,它的右子树的所有节点要大于当前节点的值。如果不满足这个条件,则返回 False。