不显示链表节点

linked list nodes not being displayed

本文关键字:节点 链表 显示      更新时间:2023-10-16
#include <bits/stdc++.h>
using namespace std;
struct node {
    int data;
    node* next;
};
void insertnode(node* conductor)
{
    node* t;
    t = new node;
    conductor->next = t;
    conductor = conductor->next;
    conductor->next = 0;
    cin >> conductor->data;
}
int main()
{
    node *root, *conductor;
    root = new node;
    root->next = 0;
    cin >> root->data;
    conductor = root;
    for (int i = 0; i < 4; i++) {
        insertnode(conductor);
    }
    conductor = root;
    while (conductor->next != 0) {
        cout << conductor->data;
        conductor = conductor->next;
    }
    cout << " " << conductor->data << " ";
    return 0;
}

该程序应显示所有节点,即 根和 i=0 到 1=3(<4(,但它只显示根节点和上次输入的节点。我的代码出了什么问题?我想显示根节点中的所有节点到最后一个节点。

我认为您应该将 for 循环更改为以下内容。

for(int i=0;i<4;i++){
    insertnode(conductor);
    conductor = conductor->next;
}
在这种情况下,

您的列表中只有 2 个节点。其他人在记忆中被遗漏了。您必须添加导体=导体>下一个;在 for 循环中,因为 Insertloop 函数中的"导体"指针更改仅在此函数中可用。在 main(( 中,它与调用此函数之前相同。