用刚学到的Create函数创建链表,这是我写的代码
```
#include<stdio.h>
#include<stdlib.h>
typedef struct LNode{
int xi;
int zhi;
struct LNode *next;
}LNode,*LinkList;
void create(LinkList &L,int n){
LinkList p,q;
L=(LinkList)malloc(sizeof(LNode));
p=L->next;
scanf("%d %d",&L->xi,&L->zhi);
for(int i=1;i<n;i++){
q=(LinkList)malloc(sizeof(LNode));
scanf("%d %d",&q->xi,&q->zhi);
p->next=q;
p=p->next;
}
p->next=NULL;
}
int main(){
int n,m;
scanf("%d %d",&n,&m);
LinkList LA,LB;
create(LA,n);
create(LB,m);
return 0;
}
```
结果运行不了,我先把LB的Create注释掉,发现LA的可以正常运行,然后我把LA的注释掉,发现LB不能运行,之后发现两个都不能运行了???
下面附可以正常运行的Create函数代码,但我还是不知道为什么上面的不对,希望大佬不吝赐教,谢谢了!!
```
void create(LinkList &L,int n){
LinkList s,pre,q;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
while(n--){
s=(LinkList)malloc(sizeof(LNode));
scanf("%d %d",&s->xi , &s->zhi);
pre=L;
q=L->next;
while(q&&q->zhi<s->zhi){
pre=q;
q=q->next;
}
s->next=q;
pre->next=s;
}
}
```