#include <stdio.h>
#include <string.h>
#define LEN sizeof(struct node)
typedef struct node
{
int data;
struct node *next;
}node;
node *create(int n) //建立顺序单链表
{
int i;
node *head,*tail,*p;//头结点,头结点为空 尾结点(这里tail没其他用途只为建立链表 游动指针
head = (node*)malloc(sizeof(LEN));//为头结点分配内存
head->next = NULL;
tail = head;
for(i=0;i<n;i++){
p = (node*)malloc(sizeof(LEN));
scanf("%d",&p->data);
p->next = NULL;
tail->next = p;
tail = p;
}
return head;
}
void mergelist(node *head,node *head1)//链表合并 (传入两个链表的头结点
{
node *p;
p = head->next;
while(p->next){
p = p->next;//一直遍历到游动指针的最末尾
}
p->next = head1->next;//将指向第一个链表的游动指针的next指向为第二个链表头结点的next( creat建立的链表为头结点为空的链表
}
void display(node *head)//打印链表
{
node *p;
p = head->next;
while(p){
printf("%d ",p->data);
p = p->next;
}
}
int main()
{
int n,m;
node *head,*head1;
scanf("%d%d",&n,&m);//这里傻逼了,老是习惯先输入数据的个数,如何在输入数据,一定要注意啊!!
head = create(n);
head1 = create(m);
mergelist(head,head1);
display(head);
return 0;
}