为什么运行不出来结果呀

void mix(LinkList plist1,LinkList plist2)
{
int n,x;
LinkList p,r,l,m,p1,s1,p2,s2,d;
r=plist1;
p1=plist1;
s1=plist1;
p1=p1->link;
s1=s1->link;
m=plist2;
p2=plist2;
s2=plist2;
s2=s2->link;
p2=p2->link;
d=p1;
printf("请输入第一个链表元素的个数n\n");
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
p=(LinkList)malloc(sizeof(struct Node));
p->link=NULL;
printf("请输入第%d个元素的值\n",i);
scanf("%d",&p->info);
printf("\n");
r->link=p;
r=p;
}
printf("初始化后的第一个链表如下\n");
while(plist1->link!=NULL)
{
plist1=plist1->link;
printf("%3d",plist1->info);
}
printf("\n");
printf("请输入第二个链表元素的个数x\n");
scanf("%d",&x);
for(int i=1;i<=x;i++)
{
l=(LinkList)malloc(sizeof(struct Node));
l->link=NULL;
printf("请输入第%d个元素的值\n",i);
scanf("%d",&l->info);
printf("\n");
m->link=l;
m=l;
}
printf("初始化后的第二个链表如下\n");
while(plist2->link!=NULL)
{
plist2=plist2->link;
printf("%3d",plist2->info);
}
printf("\n");
if(n>=x)
{
while(int j=1;j<=x;j++)
{
s1=s1->link;
s2=s2->link;
p1->link=p2;
p2->link=s1;
p1=s1;
p2=s2;
}
}
printf("整合后的新链表如下\n");
for(int i=1;i<=n;i++)
{
printf("%3d",d->info);
d=d->link;
}
}