linked list merge halfs