/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2) {
struct ListNode *ans,*p;
if(!l1){
return l2;
}
else if(!l2){
return l1;
}
if(l1->val<=l2->val){
ans=l1;
l1=l1->next;
}else{
ans=l2;
l2=l2->next;
}
p=ans;
while(l1&&l2){
if(l1->val<=l2->val){
p->next=l1;
l1=l1->next;
}else{
p->next=l2;
l2=l2->next;
}
p=p->next;
}
if(!l1){
p->next=l2;
}else{
p->next=l1;
}
return ans;
}