struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2){
struct ListNode* L = (struct ListNode*)malloc(sizeof(struct ListNode));
struct ListNode *l1=list1,*l2=list2,*head=L;
L->next = NULL;
while(l1!=NULL && l2!=NULL){
if(l1->val<l2->val)
{
head->next=l1;
l1=l1->next;
}
else
{
head->next=l2;
l2=l2->next;
}
head=head->next;
}
if(l1==NULL){
head->next=l2;
}
if(l2==NULL){
head->next=l1;
}
return L->next;
}