Is it possible to sort a linked list without copying its values but linking the nodes?
Copy the list into an array, sort the array, construct a linked list from it.   Done.  It suffices to populate the array with pointers (references) to the values; you don't need to copy the values themselves. The running time will be $\Theta(n \log n)$ if you use an appropriate sorting algorithm -- much faster than quadratic time.