69,373
社区成员
发帖
与我相关
我的任务
分享
struct node *create() //建立链表
{
struct node *head,*p1,*p2;
head=NULL;
p1=(struct node *)malloc(sizeof(struct node )) ; //分配内存空间使p1和p2同时指向这个空间的起始地址
scanf("%d",&p1->n);
p1->next=NULL;
while(p1->n!=0)
{
if(head==NULL)
{
head=p1;
p2=head;//p2始终指向表尾
}
else
{
p2->next=p1;
p2=p2->next;//表位添加元素p2后移以指向表尾
p1=(struct node *)malloc(sizeof(struct node));
scanf("%d",&p1->n);
p1->next=NULL;
}
}
p2->next=NULL;
return head; //返回链表的头指针
}
struct node *create() //建立链表
{
struct node *head,*p1,*p2;
//head=NULL;
head=p1=p2=(struct node *)malloc(sizeof(struct node )) ; //分配内存空间使p1和p2同时指向这个空间的起始地址
scanf("%d",&p1->n); //
while(p1->n!=0) //
{
p2->next=p1;
p2=p1;
p1=(struct node *)malloc(sizeof(struct node));
scanf("%d",&p1->n);
}
p2->next=NULL;
return head; //返回链表的头指针
}