打火鸡 2020-10-28 19:41 采纳率: 0%
浏览 43
已结题

C语言链表的疑问,向大佬请教

  • List create_first(void){
    int data;
    List head, p;
    head = (List)malloc(sizeof(LNode));
    head->next = NULL;
    for(int i = 0; i < 10; i++ ){
        scanf("%d",&data);
        p = (List)malloc(sizeof(LNode));
        p->data = data;
        p->next = head->next;
        head->next = p;
    }
    return head;
    }
    

    head的类型不是指向LNode的指针吗,既然是指针,为什么还有head->next呢?

  • 关于尾插法创建列表不太理解

图片说明

(从别的帖子里找的代码)

head指针从始至终不是都指向NULL吗?rear与p之间的赋值也不太明白

  • 写回答

2条回答 默认 最新

  • 化屾为海 2020-10-29 01:06
    关注

    head->next = NULL;是将链表尾节点置空,当访问链表之head->next == NULL 时代表链表遍历完毕。head是指向链表的结点,不是一直指向NULL的。
    rear是指向链表的尾部,新建节点P与rear之间的赋值是从尾部插入节点。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题