[英]Minimum Element in Binary Search Tree
给定一个二叉搜索树。 任务是在给定的 BST 中找到最小元素。
Example 1:
Input:
5
/ \
4 6
/ \
3 7
/
1
Output: 1
Example 2:
Input:
9
\
10
\
11
Output: 9
你的任务:任务是完成函数 minValue() ,该函数以 root 为参数并返回 BST 的最小元素。 如果树为空,则没有最小元素,因此在这种情况下返回 -1。
我的代码:
def minValue(root):
if root is None:
return -1
elif root.left is None:
return root.data
else:
minValue(root.left)
这段代码为我提供了每个测试用例的输出 None 而如果我在 else 条件中更改我的minValue(root.left)
以return minValue(root.left)
,我会得到正确的答案。 谁能告诉我为什么会发生这种情况?
每个 Python 函数都会返回一些东西。 如果函数在没有返回的情况下退出,则返回值为 None。 如果第一个 if 语句为真,您的代码将返回 -1。 如果 elif 为真,则返回 root.data。 否则它返回 None,因为采用了 else 分支并且不返回任何内容。 它调用 minValue 但这实际上并没有做任何事情,因为你没有在那里返回任何东西。 函数完成后,代码会一直拖到最后——因此 Python 返回 None。
您没有在第二种情况下添加 return 语句,因此输出显示None
因为实际上没有返回任何内容。 只需将其更改为
def minValue(root):
if root is None:
return -1
elif root.left is None:
return root.data
else:
return minValue(root.left)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.