合并k个已排序的链表
Posted 唐 昊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了合并k个已排序的链表相关的知识,希望对你有一定的参考价值。
采用逐步遍历
public ListNode mergeKLists(ArrayList<ListNode> lists)
ListNode root = new ListNode(-1);
for(int i = 0 ;i< lists.size();i++)
root.next = mergeTwoLists(root.next,lists.get(i));
return root.next;
private ListNode mergeTwoLists(ListNode head1,ListNode head2)
if(head1 == null || head2 == null)
return head1==null?head2:head1;
ListNode root = new ListNode(-1);
ListNode temp = root;
while(head1 != null && head2 != null)
if(head1.val > head2.val)
temp.next = head2;
temp = temp.next;
head2 = head2.next;
else
temp.next = head1;
temp = temp.next;
head1= head1.next;
if(head1 != null)
temp.next = head1;
else
temp.next = head2;
return root.next;
以上是关于合并k个已排序的链表的主要内容,如果未能解决你的问题,请参考以下文章
[Leetcode] Merge k sorted lists 合并k个已排序的链表
合并k个已排序的链表(NC51/考察次数Top37/难度较难)