用 Python 编写程序检查二叉树是否为 BST
pythonserver side programmingprogramming更新于 2026/1/10 17:48:17
假设我们有二叉树;我们必须检查它是否是二叉搜索树。我们知道 BST 具有以下属性 −
- 其左子树上的所有节点都小于当前节点值
- 其右子树上的所有节点都大于当前节点值
- 这些属性对所有节点递归适用
因此,如果输入如下

则输出为 True
为了解决这个问题,我们将遵循以下步骤 −
- x := 树元素的中序遍历序列列表
- 如果 x 已排序,则
- 返回 True
- 返回 False
让我们看看下面的实现以便更好地理解 −
示例
class TreeNode: def __init__(self, data, left = None, right = None): self.data = data self.left = left self.right = right class Solution: def solve(self, root): def inorder(root,l): if root is None: return inorder(root.left,l) l.append(root.data) inorder(root.right,l) l = [] inorder(root,l) return l == sorted(l) ob = Solution() root = TreeNode(5) root.left = TreeNode(1) root.right = TreeNode(9) root.right.left = TreeNode(7) root.right.right = TreeNode(10) root.right.left.left = TreeNode(6) root.right.left.right = TreeNode(8) print(ob.solve(root))
输入
root = TreeNode(5) root.left = TreeNode(1) root.right = TreeNode(9) root.right.left = TreeNode(7) root.right.right = TreeNode(10) root.right.left.left = TreeNode(6) root.right.left.right = TreeNode(8)
输出
True
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

