      "    if len(data) < 2:\n",
      "        return data\n",
      "    mid = len(data) // 2\n",
      "    left = data[0:mid]\n",
      "    right = data[mid:len(data)]\n",
      "    left = merge_sort(left)\n",
      "    right = merge_sort(right)\n",
      "    return merge(left, right)"
     ]
    },
 
</s> remove     "    if len(data) < 2:\n",
 </s> add     "    if data is None or len(data) < 2:\n", </s> remove     "* Space: O(n), stable"
 </s> add     "* Space: O(n+m), n = number of elements, m = recursion depth\n",
    "\n",
    "Most implementations are stable."
    "    right = data[mid:]\n",
      "    if len(data) < 2:\n",
      "        return data\n",
      "    mid = len(data) // 2\n",
      "    left = data[0:mid]\n",
    "    right = data[mid:]\n",
      "    left = merge_sort(left)\n",
      "    right = merge_sort(right)\n",
      "    return merge(left, right)"
     ]
    },
keep keep keep keep replace keep keep keep keep keep
 Polish merge sort challenge and solution

Add None input test case.  Update space complexity discussion. 
sorting_searching/merge_sort/merge_sort_solution.ipynb