【发布时间】:2016-09-30 17:01:49
【问题描述】:
当我在第 0 个位置插入节点时效果很好,但当我在中间某处插入时效果不佳。我保持指针 prev 遍历到目标位置的前一个节点,我还检查了是否要插入节点在尾部位置。我不知道为什么会出现分段错误。有人可以帮我解决这个问题吗? 代码是:
Node* InsertNth(Node *head, int data, int position)
{
Node * temp=new Node;
int i=1;
temp->data=data;
temp->next=NULL;
Node * prev;
if(position==0)
{if(head==NULL)
head=temp;
else
{
temp->next=head;
head=temp;
}
}
else
{
prev=head;
while(i!=position)
{
i++;
prev=prev->next;
}
if(prev->next=NULL)
{
prev->next=temp;
}
else
{
temp->next=prev->next;
prev->next=temp;
}
}
return head;
}
【问题讨论】:
-
如果要插入不在索引
0处的元素,则必须在此之前为每个索引生成一个节点。
标签: c++ segmentation-fault position singly-linked-list