input: Write a function to merge two sorted lists A and B into a single sorted list. The function should take the first element of list A and compare it with the first element of list B. If it is greater, then it should add the element to the result list and move the pointer of B to the next element. If the element of A is smaller, the pointer should move to the next element of A, and so on. The function should also handle the case where the end of one list is reached and append the remaining elements of the other list.
  
  def merge_sort(A, B):
   result = [] 
   i, j = 0, 0
  
  # Compare elements and add lower one to result
  while i < len(A) and j < len(B):
   if A[i] < B[j]:
   result.append(A[i])
   i += 1
   else:
   result.append(B[j])
   j += 1
  
  # Add remaining elements
  result += A[i:]
  result += B[j:]
  
  return result
  
  assert merge_sort([3, 6, 8, 10, 11], [2, 5, 7, 12])==[2, 3, 5, 6, 7, 8, 10, 11, 12]
  assert merge_sort([1, 3, 5], [2, 4, 6])==[1, 2, 3, 4, 5, 6]
  assert merge_sort([], [2, 4, 6])==[2, 4, 6]
  assert merge_sort([1, 3, 5], [])==[1, 3, 5]
  assert merge_sort([], [])==[]
output: def merge_sort(A, B):
   result = [] 
   i, j = 0, 0
  
   while i < len(A) and j < len(B):
    if A[i] < B[j]:
     result.append(A[i])
     i += 1
    else:
     result.append(B[j])
     j += 1
  
   result += A[i:]
   result += B[j:]
  
   return result