对两个有序链表进行合并
通过两个链表的头结点的比较,将它们中的一个加入到新的链表中来。
Node * merge(Node *one ,Node *two)
{
if(one==NULL&&two==NULL)
return NULL;
Node *p=one;
Node *q=two;
Node *m=NULL;
if(p->data<q->data)
{
m=p;
p=p->next;
}
else
{
m=q;
q=q->next;
}
Node *head=m;
//m是一个头指针。
while(p&&q)//
{
if(p->data<q->data)
{
m->next=p;
m=p;
p=p->next;
}
else
{
m->next=q;
m=q;
q=q->next;
}
}
if(p)
m->next=p;
if(q)
m->next=q;
return head;
}