【发布时间】:2020-06-11 00:55:16
【问题描述】:
我需要有关在 test-dome 中发布的问题的解决方案。
问题来了
二叉搜索树 (BST) 是一种二叉树,其中每个节点的值大于或等于该节点左子树中所有节点的值且小于该节点右子树中所有节点的值.
编写一个函数,在使用时间方面有效地检查给定的二叉搜索树是否包含给定的值。
例如,对于以下树:
n1(值:1,左:空,右:空) n2(值:2,左:n1,右:n3) n3(值:3,左:空,右:空) 调用 contains(n2, 3) 应该返回 True,因为根在 n2 的树包含数字 3。
以下是我的答案。 我正在编程 python。
import collections
Node = collections.namedtuple('Node', ['left', 'right', 'value'])
def contains(root, value):
if value == root.value:
return True
elif value > root.value:
if root.right != None:
return contains(root.right, value)
elif value < root.value:
if root.left != None:
return contains(root.right, value)
n1 = Node(value=1, left=None, right=None)
n3 = Node(value=3, left=None, right=None)
n2 = Node(value=2, left=n1, right=n3)
print(contains(n2, 2))
现在,我通过了 33.3%,请帮我通过 100%
【问题讨论】:
-
这是作弊!
标签: python algorithm recursion binary-search-tree namedtuple