/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2){
if(list1==NULL)
return list2;
if(list2==NULL)
return list1;
struct ListNode *p=list1;
struct ListNode *q=list2;
struct ListNode* r=(struct ListNode*)malloc(sizeof(struct ListNode));
struct ListNode* res=r;
res->next=NULL;
while(p!=NULL&&q!=NULL){
if(p->val<q->val){
res->next=p;
p=p->next;
res=res->next;
}else{
res->next=q;
q=q->next;
res=res->next;
}
}
if(q!=NULL)
res->next=q;
else
res->next=p;
return r->next;
}
运行结果