Building heaps and heapsort using linked list
doubly linked list can be sorted by heapsort with O(nlogn) time, O(1) space complexity, but not singly linked-list.
merge sort can apply to singly linked list with O(nlogn) time, O(n) space complexity.