题解 | #删除链表中重复的结点#
合并k个已排序的链表
http://www.nowcoder.com/practice/65cfde9e5b9b4cf2b6bafa5f3ef33fa6
只留下几行代码
/**
* 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) {
ListNode node = new ListNode(0);
ListNode res = node;
//去除空
LinkedList<ListNode> lists1 = new LinkedList<>();
for(int i=0;i<lists.size();i++){
if(lists.get(i)!=null){
lists1.add(lists.get(i));
}
}
while(lists1.size()>0){
ListNode temp = lists1.get(0);
int mark = 0;
for(int i=1;i<lists1.size();i++){
if(null == temp&&null!=lists1.get(i)){
temp = lists1.get(i);
mark = i;
}else if(null!=lists1.get(i)&&temp.val>lists1.get(i).val){
temp = lists1.get(i);
mark = i;
}
}
node.next = new ListNode(temp.val);
node = node.next;
node.next=null;
temp = temp.next;
if(null == temp){
lists1.remove(mark);
}else{
lists1.remove(mark);
lists1.add(temp);
}
}
return res.next;
}
}