经典写法:取小的尾插
struct ListNode* trainningPlan(struct ListNode* head1, struct ListNode* head2) {
if(head1==NULL&&head2==NULL)
{
return NULL;
}
if(head1==NULL)
{
return head2;
}
if(head2==NULL)
{
return head1;
}
struct ListNode*good=NULL;
struct ListNode*bad=good;
while(head1&&head2)
{
if(head1->val<head2->val)
{
if(good==NULL)
{
good=head1;
bad=head1;
}
else
{
good->next=head1;
good=good->next;
}
head1=head1->next;
}
else
{
if(good==NULL)
{
good=head2;
bad=head2;
}
else
{
good->next=head2;
good=good->next;
}
head2=head2->next;
}
}
if(head1)
{
good->next=head1;
}
if(head2)
{
good->next=head2;
}
return bad;
}