def Find_Min(tree,smallest):
if tree == []: return smallest
elif tree != []:
if smallest > tree[0]: smallest = tree[0]
Find_Min(tree[1],smallest)
Find_Min(tree[2],smallest)
def main():
array = [1, [0, [222,[],[]], [4,[],[]] ], [-6, [99,[],[]], []]]
print("Smallest element in list: " + str(Find_Min(array,array[0])))
if __name__ == '__main__':
main()
返回None
。
我在哪里做错了什么?
我期待-6
。
答案 0 :(得分:3)
当您从最小查找中分离出树元素的访问时,这变得更容易。如果您需要它,它还可以非常轻松地创建find_max
函数:-)。这里有一些代码可以指出你正确的方向...
def visit(tree):
for elem in tree:
if isinstance(elem, list):
for subelem in visit(elem): # yield_from visit(elem) on python3.3+
yield subelem
else:
yield elem
现在找到最小值就像在访问过的元素上使用min
函数一样简单:
def find_min(tree):
return min(visit(tree))