GREY2333
2021-05-17 17:26
采纳率: 100%
浏览 28

求教c语言链表的小问题

#include<stdio.h>
#include<stdlib.h>

//这个代码里面,我没有将链表L的指针next,指向下一个地址,为什么程序没出错,可以正常输出呢?


typedef struct LNode
{
    int data;
    struct LNode *next;

} LinkList,LNode;

LinkList *CreateList()
{
    LinkList *head ,*L,*tail;
    head=NULL;
    tail=NULL;
    int n;
    printf("请输入函数的个数:\n");
    scanf("%d",&n);
    printf("请输入%d个元素\n",n);
    int i;

    for(i=n;i>=1;i--)
    {

        L=(LinkList*)malloc(sizeof(LNode));
        if(head==NULL)
            head=L;
        else
            tail->next=L;


        scanf("%d",&L->data);
        L->next=NULL;

        tail=L;
    }

    L=head;
    return head;

}

void PrintList_L(LinkList *L)
{

   LinkList *p;
   p=L;

   while(p)
   {
       printf("%d ",p->data);
       p=p->next;
   }

   printf("\n");


}

int main()
{
    LinkList *L;
    L=CreateList();
    PrintList_L(L);

}
 

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • CSDN专家-三岁丫 2021-05-17 17:33
    已采纳

     

    点赞 打赏 评论
  • CSDN专家-link 2021-05-17 17:32

    明明都赋值为NULL了啊。CreateList返回的就是内部的head指针,在循环创建的时候,都给next赋值为空了,你为啥数没有呢?

    点赞 打赏 评论
  • 有问必答小助手 2021-05-18 10:25

    您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

    如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

    ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

    点赞 打赏 评论

相关推荐 更多相似问题