题解 | #合并k个已排序的链表#
合并k个已排序的链表
http://www.nowcoder.com/practice/65cfde9e5b9b4cf2b6bafa5f3ef33fa6
我这操作有点骚啊,不知道真正面试的时候会不会被喷
先遍历放到List里面存起来节点的值,然后再新建个链表返回
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
import java.util.*;
public class Solution {
public ListNode mergeKLists(ArrayList<ListNode> lists) {
if(lists==null || lists.size()==0){
return null;
}
ArrayList<Integer> numList = new ArrayList<>();
for(ListNode listNode : lists){
while(listNode!=null){
numList.add(listNode.val);
listNode = listNode.next;
}
}
Collections.sort(numList);
ListNode buildNode = new ListNode(-1);
ListNode resNode = buildNode;
for(Integer item : numList){
ListNode node = new ListNode(item);
buildNode.next = node;
buildNode = buildNode.next;
}
return resNode.next;
}
}
