一、迭代
public class Solution {
public ListNode Merge(ListNode list1,ListNode list2) {
if(list1==null&&list2==null) return null;
ListNode head=new ListNode(-1);//为了输出整个链表
ListNode list=head;//list是输出链表的当前节点
while(list1!=null&&list2!=null){//两个链表都还有节点没遍历完
if(list1.val<=list2.val){
list.next=list1;
list1=list1.next;
}
else {
list.next=list2;
list2=list2.next;
}
list=list.next;
}
if(list1==null){//list1已经遍历完了
list.next=list2;
}else{ //list2已经遍历完了
list.next=list1;
}
return head.next;
}
}
二、递归
public ListNode Merge(ListNode list1,ListNode list2) {
if(list1==null) return list2;
if(list2==null) return list1;
ListNode mergeHead=null;
if(list1.val<list2.val){
mergeHead=list1;
mergeHead.next=Merge(list1.next,list2);
}
else{
mergeHead=list2;
mergeHead.next=Merge(list1,list2.next);
}
return mergeHead;
}