input: Write a python function to merge two sorted lists.
  assert MergeSort().merge([2, 5, 6], [1, 8, 10]) == [1, 2, 5, 6, 8, 10]
  assert MergeSort().merge([1, 3, 7], [2, 4, 8, 9]) == [1, 2, 3, 4, 7, 8, 9]
  assert MergeSort().merge([], [1, 2, 3]) == [1, 2, 3]
  assert MergeSort().merge([1, 2, 3], []) == [1, 2, 3]
  assert MergeSort().merge([1, 5, 9], [2, 3, 6, 7, 8]) == [1, 2, 3, 5, 6, 7, 8, 9]
output: class MergeSort:
      def merge(self, list1, list2):
          merged_list = []
          i = j = 0
          
          # Traverse both lists and append smaller element to merged_list
          while i < len(list1) and j < len(list2):
              if list1[i] < list2[j]:
                  merged_list.append(list1[i])
                  i += 1
              else:
                  merged_list.append(list2[j])
                  j += 1
          
          # Append remaining elements of list1, if any
          while i < len(list1):
              merged_list.append(list1[i])
              i += 1
          
          # Append remaining elements of list2, if any
          while j < len(list2):
              merged_list.append(list2[j])
              j += 1
          
          return merged_list