【发布时间】:2020-06-16 07:00:02
【问题描述】:
我已经编写了这段代码来在单链表的末尾插入节点。它编译没有错误,但在执行时没有输出显示。我哪里出错了?
void insert_n(int x){
node* temp1 = new node();
temp1->data=x;
temp1->next=NULL;
node* temp2 = head;
while(temp2->next!=NULL){
temp2 = temp2->next;
}
temp2->next=temp1;
}
void print(){
node* temp = head;
while(temp!=NULL){
cout<<temp->data<<" ";
temp = temp->next;
}
}
int main()
{
head = NULL;
insert_n(2);
insert_n(3);
insert_n(4);
insert_n(5);
print();
return 0;
}
是否因为列表为空时应该有特殊情况而失败?
【问题讨论】:
-
无论
head是什么,在insert_n中对它的写入访问为零。因此,无论该函数做什么,它都无法更改print访问的内容。在相关说明中,如果temp2最初是空指针,则temp2->next无效。您应该在那里遇到分段错误。
标签: c++ data-structures linked-list