【发布时间】:2020-10-28 06:22:26
【问题描述】:
给定一个二叉搜索树。任务是在给定的 BST 中找到最小元素。
Example 1:
Input:
5
/ \
4 6
/ \
3 7
/
1
Output: 1
Example 2:
Input:
9
\
10
\
11
Output: 9
你的任务: 任务是完成以root为参数并返回BST的最小元素的函数minValue()。如果树为空,则没有最小元素,因此在这种情况下返回 -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),我会得到正确的答案。谁能告诉我发生这种情况的原因?
【问题讨论】:
-
没有return语句,你把孩子的解决方案扔进了虚空。
-
您能否详细说明,先生。
-
不确定如何。如果左孩子有最小值并且你不返回它,它就永远消失了。考虑
def add(a, b): return a + b和def add(a, b): a + b。第二个会做点什么吗?同样的问题。 -
这能回答你的问题吗? Why does my recursive function return None?
标签: python algorithm data-structures tree