1 ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) { 2 if(l1==NULL) 3 return l2; 4 if(l2==NULL) 5 return l1; 6 ListNode *head,*p; 7 if(l1->val<=l2->val){ 8 head=l1; 9 l1=l1->next; 10 } 11 else{ 12 head=l2; 13 l2=l2->next; 14 } 15 head->next=NULL; 16 p=head; 17 while(l1&&l2){ 18 if(l1->val<=l2->val){ 19 p->next=l1; 20 l1=l1->next; 21 } 22 else{ 23 p->next=l2; 24 l2=l2->next; 25 } 26 p=p->next; 27 p->next=NULL; 28 } 29 while(l1){ 30 p->next=l1; 31 l1=l1->next; 32 p=p->next; 33 p->next=NULL; 34 } 35 while(l2){ 36 p->next=l2; 37 l2=l2->next; 38 p=p->next; 39 p->next=NULL; 40 } 41 return head; 42 }
AC