迭代
class Solution {
public:
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
ListNode* dummy = new ListNode(0);
ListNode* prev=dummy;
ListNode *first=l1,*second=l2;
while(first&&second){
if(first->val > second->val){
prev->next = second;
second = second->next;
}else{
prev->next = first;
first = first->next;
}
prev=prev->next;
}
prev->next = (first==nullptr) ? second : first;
return dummy->next;
}
};
递归
class Solution {
public:
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
if(l1==nullptr){
return l2;
}else if(l2==nullptr){
return l1;
}else if(l1->val > l2->val){
l2->next=mergeTwoLists(l1,l2->next);
return l2;
}else{
l1->next=mergeTwoLists(l1->next,l2);
return l1;
}
}
};