我有一个向后出现的链表。当我想将元素放在前面时,我似乎正在将元素添加到列表的后面。我的节点如下所示:
struct node{
int data;
struct node* next;};
接下来我设置头部和变量
int info,x,listLength;
struct node *head = NULL;
struct node *temp;
printf("How many nodes?\n");
scanf("%d",&listLength);
现在我提示在列表中输入一个新条目,然后沿着节点移动
for(x=1;x<=listLength;x++){
printf("Insert an X value for node %d\n",x);
scanf("%d",&info);
temp = (struct node*)malloc(sizeof(struct node));
temp->data = info;
temp->next = head;
head = temp;
}
最后我输出结果并释放内存空间
while(temp!=NULL){
printf("WE GOT %d\n",temp->data);
temp = temp->next;
}
free(temp);
但是,如果我输入三个节点的输入,然后输入 1,2,然后输入 3,则输出是 3,2,然后是 1!如何更改此设置以确保将节点添加到正确的位置?提前致谢!