在python中递归查找具有最大值的元素

zah*_*var 1 python recursion max python-2.7 python-3.x

我会编写一个递归函数,它将数字列表作为参数并返回列表的最大元素。我不想使用max()函数。

a = [2,1,3,5]
def f(a, m=0):
    if m<a[0]:
        m = a[0]
    if len(a) == 1:
        return m
    else:
        f(a[1:])

print(f(a))
Run Code Online (Sandbox Code Playgroud)

但它回来了None!我该如何解决?

Kas*_*afi 5

您应该m在您的else语句中定义并return在其中添加一个:

a = [2,1,3,5]
def f(a, m=0):
    if m<a[0]:
        m = a[0]
    if len(a) == 1:
        return m
    else:
        m = f(a[1:], m)
        return m

print(f(a))
Run Code Online (Sandbox Code Playgroud)