在Python中查找给定二叉树中是否存在BST的程序
假设我们有一棵二叉树。 我们必须找到树中最大的BST子树。我们将返回BST的根节点。
所以,如果输入如下:
那么输出将会是 –
为了解决这个问题,我们将采取以下步骤 –
- c:=0
- m:=空
- 定义一个函数recurse(),它将接受节点
- 如果节点不为空,则
- left_val:=recurse(节点的左侧)
- right_val:=recurse(节点的右侧)
- count:=负无穷大
- 如果(node.left为null或node.left.val<= node.val)和(右侧节点为null或node.val <= node.right.val),则
- count:= left_val + right_val + 1
- 如果计数> c,则
- c:= count
- m:= node
- 返回计数
- 返回0
- 如果节点不为空,则
- recurse(root)
- 返回m
例子
让我们看看以下实现,以获得更好的理解 –