題目
給你一個鏈表數組,每個鏈表都已經按升序排列。
請你將所有鏈表合并到一個升序鏈表中,返回合并后的鏈表。
解題思路
- 對每個鏈表的首節點進行比較,獲取當前的最小節點;
- 將每個階段的最小節點進行鏈接;
代碼展示
class Solution {public ListNode mergeKLists(ListNode[] lists) {ListNode head = null;ListNode result = null;int count = 0;while (count < lists.length){count = 0;//獲取首節點if(head == null){int min = Integer.MAX_VALUE;int index = 0;for (int i = 0; i < lists.length; i++){if(lists[i] == null){count++;continue;}int temp = lists[i].val;if(temp < min){min = temp;head = lists[i];index = i;}}if(lists[index] != null) {lists[index] = lists[index].next;}result = head;} else {int min = Integer.MAX_VALUE;int index = 0;for (int i = 0; i < lists.length; i++){if(lists[i] == null){count++;continue;}int temp = lists[i].val;if(temp < min){min = temp;result.next = lists[i];index = i;}}if(lists[index] != null) {lists[index] = lists[index].next;}result = result.next;}}return head;}
}