1 public class Solution 2 { 3 public ListNode MergeKLists(ListNode[] lists) 4 { 5 var ary = new List<int>(); 6 for (var i = 0; i < lists.Length; i++) 7 { 8 var l = lists[i]; 9 while (l != null) 10 { 11 ary.Add(l.val); 12 l = l.next; 13 } 14 } 15 ary = ary.OrderBy(x => x).ToList(); 16 ListNode tail = null; 17 for (var i = ary.Count - 1; i >= 0;i--) 18 { 19 var head = new ListNode(ary[i]); 20 head.next = tail; 21 tail = head; 22 } 23 return tail; 24 } 25 }
投机取巧的办法,时间复杂度还可以,空间占用比较多。