思路,取出两表中最小的值为头结点。然后从两表中依次必较将较小的结点接到它后面,依次执行。
如果有一个表完了,就直接把所有的接到后面。
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode Merge(ListNode list1,ListNode list2) {
if(list1==null)return list2;
if(list2==null)return list1;
ListNode head;
ListNode p = list1;
ListNode q = list2;
if(list1.val<list2.val){
head = list1;
p = p.next;
}
else{
head = list2;
q = q.next;
}
ListNode temp = head;
while(p!=null&&q!=null){
if(p.val<q.val){
temp.next = p;
p = p.next;
temp = temp.next;
}else{
temp.next = q;
q = q.next;
temp = temp.next;
}
}
if(p==null){
temp.next = q;
}
if(q==null){
temp.next = p;
}
return head;
}
}