![](https://i-blog.csdnimg.cn/blog_migrate/3b8cf50353af931c3ddda7d16a969693.png)
struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2){
struct ListNode *p,*q;
p=(struct ListNode*)malloc(sizeof(struct ListNode));
q=p;
while(list1&&list2){
if(list1->val<list2->val){
p->next=list1;
p=list1;
list1=list1->next;
}else{
p->next=list2;
p=list2;
list2=list2->next;
}
}
if(list1){
p->next=list1;
}else{
p->next=list2;
}
return q->next;
}