1、递归法
public ListNode mergeTwoLists (ListNode l1, ListNode l2) {
if(l1==null){
return l2;
}
if(l2==null){
return l1;
}
if(l1.val<=l2.val){
l1.next = mergeTwoLists(l1.next,l2);
return l1;
}
if(l1.val>l2.val){
l2.next = mergeTwoLists(l2.next,l1);
return l2;
}
return null;
}
2、迭代法
public ListNode mergeTwoLists2 (ListNode l1, ListNode l2){
ListNode newNode = new ListNode(-1);
ListNode temp= newNode;
while (l1!=null && l2!=null){
if(l1.val<=l2.val){
temp.next = l1;
l1 = l1.next;
}else{
temp.next = l2;
l2 = l2.next;
}
temp = temp.next;
}
if(l1==null){
temp.next = l2;
}
if(l2==null){
temp.next =l1;
}
return newNode.next;
}