题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
解析:先把两个链表的值都取出来放在list里,再对值排序,排完序后就创建链表返回
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Solution {
public ListNode Merge(ListNode list1,ListNode list2) {
if(list1==null&&list2==null){
return null;
}
if(list1==null){
return list2;
}
if(list2==null){
return list1;
}
List<Integer> list = new ArrayList<Integer>();//存放两个链表的值
while (list1!=null){
list.add(list1.val);
list1=list1.next;
}
while (list2!=null){
list.add(list2.val);
list2=list2.next;
}
Collections.sort(list);//把链表里的数值进行排序
ListNode head= new ListNode(list.get(0));
for(int i=list.size()-1;i>=1;i--){//尾插法创建单链表
ListNode p = new ListNode(list.get(i));
p.next=head.next;
head.next=p;
}
return head;
}
}