题解 | #合并k个已排序的链表#
合并k个已排序的链表
https://www.nowcoder.com/practice/65cfde9e5b9b4cf2b6bafa5f3ef33fa6
import java.util.*; /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */ public class Solution { public ListNode mergeKLists(ArrayList<ListNode> lists) { if (null == lists || lists.size() == 0) return null; ListNode head = null; // 向前走的指针 ListNode minNode = null; int minIndex = -1; for (int i = 0; i < lists.size(); i++) { ListNode node = lists.get(i); if (null != node) { if (null == minNode) { minNode = node; minIndex = i; } else { // 判断当前遍历的节点的值是否小于minNode if (minNode.val > node.val) { minNode = node; minIndex = i; } } } } if (minNode == null) return null; lists.set(minIndex, minNode.next); head = minNode; head.next = mergeKLists(lists); return head; } }