package main.java.demo23;
import main.java.ListNode;
/**
*
给你一个链表数组,每个链表都已经按升序排列。
请你将所有链表合并到一个升序链表中,返回合并后的链表。
*/
public class MergeKLists {
ListNode head = new ListNode();
ListNode current = head;
/**
* 算法思路: 根据多次循环找到所有链表当前最小值, 再操作
* @param lists
* @return
*/
public ListNode mergeKLists_1(ListNode[] lists) {
int n = lists.length;
Integer result = null;
int resultIndex = 0;
while (true) {
for (int i = 0; i < n; i++) {
if (lists[i] != null) {
if (result == null) {
result = lists[i].val;
resultIndex = i;
} else if (lists[i].val < result) {
result = lists[i].val;
resultIndex = i;
}
}
}
if (result == null) {
return head.next;
}
result = null;
current.next = lists[resultIndex];
current = current.next;
lists[resultIndex] = lists[resultIndex].next;
}
}
}
合并多个链表
最新推荐文章于 2023-06-26 17:10:43 发布