这是最后插入节点的代码。我在运行时没有收到任何错误,但它表明程序已停止工作。请告诉我我在这里弄糟了吗?

enter code here

#include <stdio.h>
#include <stdlib.h>
struct node{
int data;
struct node* next;
};

struct node* head;

void Insert(int data)
{
    struct node* temp, *temp2;
    temp=(struct node*)malloc(sizeof(struct node));
    temp->data = data;
    temp2 = head;
    while(temp2 != NULL)
    {
        temp2 = temp2->next;
    }
    temp2->next = temp;
    temp->next = NULL;

}
void print()
{
    struct node* temp = head;
    while(temp!=NULL)
    {
        printf("%d", temp->data);
    }
    printf("\n");
}
int main()
{
    head = NULL;
    Insert(1);
    Insert(2);
    Insert(3);
    Insert(4);
    Insert(5);
    print();
    return 0;
}

最佳答案

while(temp2 != NULL)
{
    temp2 = temp2->next;
}
temp2->next = temp;


在此循环之后,temp2始终为NULL

关于c - 链接列表-在C中列表末尾插入一个节点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35611785/

10-12 16:13