#include <cstdlib>
#include <cstdio>
using namespace std;
struct Node
{
int num;
Node * next;
};
Node * Merge(Node * pHead1, Node * pHead2)
{
if(pHead1 == NULL)
return pHead2;
else if(pHead2 == NULL)
return pHead1;
Node* pMergedHead = NULL;
if(pHead1->num < pHead2->num)
{
pMergedHead = pHead1;
pMergedHead->next = Merge(pHead1->next, pHead2);
}
else
{
pMergedHead = pHead2;
pMergedHead->next = Merge(pHead1, pHead2->next);
}
return pMergedHead;
}
Node * Merge2(Node * h1,Node * h2)
{
Node * head=NULL;
Node * tail=tail;
Node * temp=NULL;
h1=h1->next;h2=h2->next;
while(h1&&h2)
{
temp=(Node *)malloc(sizeof(Node ));
if(h1->num > h2->num)
{
temp->num = h1->num ;
h1=h1->next;
}
else
{
temp->num = h2->num ;
h2=h2->next;
}
temp->next=NULL;
tail->next=temp;
tail=tail->next;
printf("%d ",temp->num);
}
if(h1)
{
tail->next=h1;
}
if(h2)
{
tail->next=h2;
}
return head->next;
}
//*/
int main()
{
int n,m,t;
Node * head1=NULL; Node * head2=NULL;
Node * tail1=head1;Node * tail2=head2;
while(~scanf("%d %d",&n,&m) )
{
if(n==0&&m==0) printf("NULL\n");
else{
Node * temp1=(Node *)malloc(sizeof(Node ));
temp1->next=NULL;
head1=temp1;
tail1=head1;
Node * temp2=(Node *)malloc(sizeof(Node ));
temp2->next=NULL;
head2=temp2;
tail2=head2;
while(n--)
{
scanf("%d",&t);
temp1=(Node *)malloc(sizeof(Node ));
temp1->next=NULL;
temp1->num=t;
tail1->next=temp1;
tail1=tail1->next;
}
while(m--)
{
scanf("%d",&t);
temp2=(Node *)malloc(sizeof(Node ));
temp2->next=NULL;
temp2->num=t;
tail2->next=temp2;
tail2=tail2->next;
}
/*
head1=head1->next;
while(head1) {printf("%d ",head1->num);head1=head1->next;}
printf("\n");
head2=head2->next;
while(head2) {printf("%d ",head2->num);head2=head2->next;}
printf("zhelimeiyouwenti\n\n");
*/
Node * result=Merge(head1->next,head2->next);
while(result->next)
{
printf("%d ",result->num);
result=result->next;
}
if(result)
printf("%d\n",result->num);
//*/
}
}
return 0;
}
/**************************************************************
Problem: 1519
User: 萧然677
Language: C++
Result: Accepted
Time:240 ms
Memory:4188 kb
****************************************************************/
自己写的函数一运行就崩溃了,还在调试当中。。。。那个Merge函数是参考的,用递归。。。。