在链表中插入元素

时间:2017-03-20 14:38:12

标签: c++ linked-list insert

在我们执行 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;

我们收到错误,为什么会这样?

2 个答案:

答案 0 :(得分:1)

循环

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

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

temp = newItem;

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

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

答案 1 :(得分:0)

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