有人能帮我看一下哪里错了吗

如图

 

链表由一个个节点组成,节点不会平白无故诞生——就是说并不会因为你在for循环中 L = L->next;就会有新的节点出现。你的代码中,实际上只给了一个节点,在第一次指向下一个节点后,L就为无效地址了。

 

所以,请思考如何每循环一次都给链表追加一个新的节点?

贴代码吧,这样也看不全呀,截图看不太清楚。

#include <iostream>
using namespace std;;
typedef struct LNode
{
    int data;
    struct LNode* next;
}LNode, * LinkList;
void IniLNode(LNode* L)
{
    L = new LNode;
    L->next = NULL;
}
void CreatList(LNode* L, int a[], int m)
{
    IniLNode(L);
    int b;
    for (b = 0; b < m; b++)
    {
        L->data = a[b];
        L = L->next;
    }
    L->next = NULL;
}
void InsertElem(LNode* L, int m, int n)
{
    int a = 1;
    LNode* M;
    M = new LNode;
    M->data = m;
    for (; a <= n - 1; a++)
    {
        L = L->next;
    }
    M->next = L->next;
    L->next = M;
}
void PrintList(LNode* L)
{
    L = L->next;
    int a;
    while (L->next)
    {
        a = L->data;
        cout << a << " ";
        L = L->next;
    }
}
int main(void)
{
    int a = 1, b[9] = { 1,2,3,4,5,6,7,8,9 };
    LNode L;
    IniLNode(&L);
    CreatList(&L, b, 9);
    PrintList(&L);
    return 0;
}

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

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

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

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

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

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

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y