def merge( a: list, b: list ) -> list: lenA = len( a ) - 1 lenB = len( b ) - 1 result = [] i = 0 k = 0 lastIteration = False while True: valA = a[ i ] valB = b[ k ] if i == lenA and k == lenB: if lastIteration: if lenA < lenB: result.append( b[ k ]) else: result.append( a[ i ]) break lastIteration = True if valA < valB: result.append( valA ) if i < lenA: i += 1 if valB < valA: result.append( valB ) if k <= lenB: k += 1 return result