擅长:python、mysql、java
<p>因此,问题在于确定给定的树是否为BST。<br/>
最好的方法是通过顺序遍历来发现</p>
<ul>
<li>按顺序遍历给定的树并将结果存储在临时数组中</李>
<li>检查临时数组是否按升序排序,如果是,则树为BST</li>
</ul>
<p>这可能是一种方法</p>
<pre><code>def check_binary_search_tree_(root):
visited = []
def traverse(node):
if node.left: traverse(node.left)
visited.append(node.data)
if node.right: traverse(node.right)
traverse(root)
fc = {}
for i in visited:
if i in fc:
return False
else:
fc[i]=1
m = sorted(visited)
if visited==m:
return True
return False
</code></pre>
<p>有关其他方法<a href="https://www.geeksforgeeks.org/a-program-to-check-if-a-binary-tree-is-bst-or-not/" rel="nofollow noreferrer">https://www.geeksforgeeks.org/a-program-to-check-if-a-binary-tree-is-bst-or-not/</a><br/>
方法1和方法2与您的方法相似,因此它也将帮助您理解这一点</p>