漓y 2022-10-20 18:15 采纳率: 100%
浏览 38
已结题

c语言单链表计算表长出错

问题遇到的现象和发生背景

c语言创建单链表

用代码块功能插入代码,请勿粘贴截图
typedef int ElemType;

typedef struct Lnode{
    ElemType data;
    struct Lnode *next;
}Lnode,*LinkList;

int ListLength(LinkList L){
     Lnode *p;
     p = L->next;
     int count = 0;
     while(p != NULL){
         count++;
         p = p->next;
    }
    return count;
 }

void CreatList_H(LinkList L,int n){
    L = (LinkList)malloc(sizeof(Lnode));
    L->next = NULL;
    int i = 0;
    for(i = 0;i < n;i++){
        Lnode *p = (LinkList)malloc(sizeof(Lnode));
        scanf("%d",&p->data);
        p->next = L->next;
        L->next = p;
    }
} 

int main(){
    LinkList L;
    CreatList_H(L,3);//头插法 
    int count = ListLength(L); //表长 
    printf("%d",count);
    
    printf("1111111111111111111111");
    
    return 0;
} 

运行结果及报错内容

img

我想要达到的结果

正常计算出单链表的长度

  • 写回答

3条回答 默认 最新

  • qzjhjxj 2022-10-20 20:41
    关注

    修改处见注释,供参考:

    #include <stdio.h>
    #include <stdlib.h>
    typedef int ElemType;
    typedef struct Lnode{
        ElemType data;
        struct Lnode *next;
    }Lnode,*LinkList;
    int ListLength(LinkList L){
         Lnode *p;
         p = L->next;
         int count = 0;
         while(p != NULL){
             count++;
             p = p->next;
        }
        return count;
     }
    void CreatList_H(LinkList* L,int n){ //(LinkList L,int n) //修改
        (*L) = (LinkList)malloc(sizeof(Lnode));//L = 修改
        (*L)->next = NULL;               //L  //修改
        int i = 0;
        for(i = 0;i < n;i++){
            Lnode *p = (LinkList)malloc(sizeof(Lnode));
            scanf("%d",&p->data);
            p->next = (*L)->next;//L->next; 修改
            (*L)->next = p;      //L->next = p; 修改
        }
    }
    int main(){
        LinkList L;
        CreatList_H(&L,3);//头插法
        //CreatList_H(L,3); 修改
        int count = ListLength(L);//表长
        printf("%d\n",count);         //修改
    
        printf("1111111111111111111111");
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月2日
  • 已采纳回答 10月25日
  • 创建了问题 10月20日

悬赏问题

  • ¥15 精通抖音评论点赞接口的来!需要开发
  • ¥15 VB.NET2022如何生成发布成exe文件
  • ¥30 matlab appdesigner私有函数嵌套整合
  • ¥15 给我一个openharmony跑通webrtc实现视频会议的简单demo项目,sdk为12
  • ¥15 vb6.0使用jmail接收smtp邮件并另存附件到D盘
  • ¥30 vb net 使用 sendMessage 如何输入鼠标坐标
  • ¥15 关于freesurfer使用freeview可视化的问题
  • ¥100 谁能在荣耀自带系统MagicOS版本下,隐藏手机桌面图标?
  • ¥15 求SC-LIWC词典!
  • ¥20 有关esp8266连接阿里云