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

Find element with maximum value recursively in python

我会写一个递归函数,它将数字列表作为参数,return 列表的最大元素。我不想使用 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))

但它 return 是 None!我该如何解决?

您应该在 else 语句中定义 m 并在其中添加一个 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))