题目描述:
解题方法:
struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2) {
if(!list1)
return list2;
if(!list2)
return list1;
struct ListNode* l1=list1,*l2=list2,*newhead=NULL,*newtail=NULL;
while(l1&&l2)
{
if(l1->val>l2->val)
{
if(newhead==NULL){
newhead=newtail=l2;
}
else
{
newtail->next=l2;
newtail=newtail->next;
}
l2=l2->next;
}
else
{
if(newhead==NULL){
newhead=newtail=l1;
}
else
{
newtail->next=l1;
newtail=newtail->next;
}
l1=l1->next;
}
}
if(l1)
newtail->next=l1;
if(l2)
newtail->next=l2;
return newhead;
}