首页 文章

C链接列表错误转到下一个节点

提问于
浏览
0

我需要从文件中读取单词然后将其放入链接列表中 .
我在这里(下面)有这些代码插入链接列表部分 .
该向量包含我从文件中读取的单词

List( vector <string> &v )
    {
        ListNode *cur = head;

        for ( int i = 0 ; i < v.size() ; i++ )
        {
            //cout << v[i] << endl;

            ListNode *newNode = new ListNode;

            newNode->item = v[i];

            if ( i == 0 )      // first node
            {
                newNode->next = NULL;
                head = newNode;
            }

            else               // insert node into the back
            {
                ListNode *prev = cur;
                newNode->next = prev->next;
                prev->next = newNode;
            }

            cout << cur->item << endl;

            system("pause");
        }
    }

我的问题是我的节点在将一个单词插入节点后没有进入下一个节点 .
我试着把cur = cur->下一个;在cout << cur-> item << endl;之间和系统("pause");
该程序给我错误

1 回答

  • 0

    您没有正确更新子节点 . 试试这个,在 else 块中 .

    else 
    {
       ListNode *prev = cur;
       prev->next = newNode;
    }
    cur = newNode;
    

    它可以更简单地重写 . 但首先要尝试纠正现有的计划,然后再进行有效的计划 . 希望这可以帮助 !

相关问题