singly linked list merge sort