用尾插法合并单链表
算法思想:让头指针p指向空,用来构建链表Z,用m和n来遍历X和Y,逐个把较小的结点尾插进链表Z中,之后把剩余的链表尾插进Z的后面,形成新链表Z。
伪代码如下:
void concat(LinkList p,LinkList q){
LinkList m=p->next,n=q->next; //定义指针m,n来遍历单链表X,Y
LinkList r=p; //定义尾指针用于尾插
p->next=NULL; //让头结点指向空用来准备形成新的链表Z
while(m!=NULL&&n!=NULL){ //当当两链表都没有遍历完时进行循环
if(m->data<n->data){ //挨个把较小的结点尾插进链表Z
r->next=m;
r=m;
m=m->next;
}
else{
r->next=n;
r=n;
n=n->next;
}
}
if(n!=NULL) //把剩下没有遍历完的链表接入链表Z
r->next=n;
if(m!=NULL)
r->next=m;
}
标签:LinkList,单链,合并,next,链表,遍历,NULL
From: https://www.cnblogs.com/Auous/p/16788120.html