递归调用的出口问题(return None问题)
最近刷LeetCode山脉数组(这道题的解法我们下一篇讨论)一题时,遇到了这个问题。如下的写法会导致返回值为None,从print的mid来看,mid是被正确的找到的。
def search(alist, first, last, item):
mid = (first + last) // 2
print(mid)
if alist[mid] == item:
# global index
# index= mid
return mid
elif item > alist[mid]:
search(alist, mid + 1, last, item