输入:2
3 1 4 5
5 9 23 45 78 90
2 14 15
3 78 79 89
输出:
90 78 45 23 9 5 4 1
89 79 78 15 14
代码:
package bishitest;
import java.util.LinkedList;
import java.util.Scanner;
public class TwoLinkAddRevers {
public static class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
public ListNode() {
}
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
for (int i = 0; i < n; i++) {
ListNode list1 =new ListNode();
ListNode l1 = list1;
ListNode list2 =new ListNode();
ListNode l2 =list2;
int a =in.nextInt();
for(int j=0;j<a;j++){
list1.next = new ListNode(in.nextInt());
list1 = list1.next;
}
int b =in.nextInt();
for(int k=0;k<b;k++){
list2.next = new ListNode(in.nextInt());
list2 = list2.next;
}
ListNode hebing =TwoLinkAddRevers.Merge(l1.next,l2.next);
ListNode res = TwoLinkAddRevers.ReverseList(hebing);
while (res != null){
System.out.print(res.val + " ");
res = res.next;
}
}
}
static ListNode Merge(ListNode list1,ListNode list2) {
if(list1 ==null){
return list2;
}
if(list2 ==null){
return list1;
}
if(list1.val <= list2.val){
list1.next = Merge(list1.next,list2);
return list1;
}else{
list2.next = Merge(list2.next,list1);
return list2;
}
}
public static ListNode ReverseList(ListNode head) {
ListNode next = null;
ListNode pre = null;
if(head == null){
return null;
}
while(head != null){
next = head.next;
head.next = pre;
pre = head;
head = next;
}
return pre;
}
}