链表的尾插发两种方式!
作者:互联网
//第一种通过循环 找出最后一个节点 因为最后一个节点 指针域指向NULL
L* LastList(){
L* head=(L*)malloc(sizeof(L));
L* p=head;
p->node=NULL;
int len,i=0,val;
printf("请输入您要创建链表的长度 ");
scanf("%d",&len);
for(i;i<len;i++){
scanf("%d",&val);
//创建一个新的节点
L * newp=(L*)malloc(sizeof(L));
newp->data=val;
newp->node=NULL;
while(p->node!=NULL){
p=p->node;
}
p->node=newp;
}
return head;
}
//第二种定义一个指针始终指向最后一个节点
//尾插法
L* LastList2(){
L* head=(L*)malloc(sizeof(L));
L* p=head;
p->node=NULL; //p始终指向最后一个节点
int len,i=0,val;
printf("请输入您要创建链表的长度 ");
scanf("%d",&len);
for(i;i<len;i++){
scanf("%d",&val);
//创建一个新的节点
L * newp=(L*)malloc(sizeof(L));
newp->data=val;
newp->node=NULL;
p->node=newp;
p=newp;
}
return head;
}
标签:node,head,两种,插发,val,len,链表,newp,NULL 来源: https://blog.csdn.net/qq_38639624/article/details/101112241