在链表中插入元素

Inserting element in linked list

本文关键字:元素 插入 链表      更新时间:2023-10-16

当我们执行insertLast(int item(函数时,在链表中,我们执行以下步骤:

struct node *temp;
struct node *newItem;
newItem = (struct node*)malloc(sizeof(struct node));
temp = head;
while(temp->next != NULL){
   temp = temp->next;
}
temp->next  = newItem;
newItem->next = NULL;

但是,如果我们这样做:

struct node *temp;
struct node *newItem;
newItem = (struct node*)malloc(sizeof(struct node));
temp = head;
while(temp != NULL){
   temp = temp->next;
}
temp = newItem;
newItem->next = NULL;

我们收到一个错误,为什么会发生这种情况?

循环

while(temp != NULL){
    ...
}

将以 temp == NULL 终止,即在运行超过列表末尾之后。然后

temp = newItem;

将指向新创建对象的指针分配给 temp 变量 - 但这不再与列表相关。

因此,没有任何"错误"的理由(除了新项目没有附加到列表中(。

在第二个代码块中,不要将最后一个元素的链接设置为指向新插入的元素。