慕容森
你只需要以相反的方式做所有事情——从尾部而不是头部检索项目,在进行比较时选择两者中较大的一个,并在另一个用尽时以相反的顺序返回剩余的列表:def merge(lst1, lst2): if not lst1: return lst2[::-1] if not lst2: return lst1[::-1] if lst1[-1] < lst2[-1]: return [lst2[-1]] + merge(lst1, lst2[:-1]) else: return [lst1[-1]] + merge(lst1[:-1], lst2)以便: merge([2,5,9,12], [0,1,3,4,8])会返回: [12, 9, 8, 5, 4, 3, 2, 1, 0]