我不明白单链表中插入最后一个函数中的一件事。这个函数会在最后一个节点之后插入新项目。
newNode->next=temp->next;
temp->next=newNode;
我收到了一个错误。我不知道为什么?请帮助!!
int insertLast(int item)
{
struct listNode *newNode,*temp;
newNode=(struct listNode*)malloc(sizeof(struct listNode));
newNode->item=item;
newNode->next=NULL;
if(list==NULL)
{
list=newNode;
}
else
{
temp=list;
while(temp->next!=NULL)temp=temp->next;
newNode->next=temp->next;
temp->next=newNode;
}
return SUCCESS_VALUE;
}
答案 0 :(得分:1)
newNode->next=temp->next;
NewNode->next
应该保留null
,因为您要添加到列表的末尾。现在你的列表最后会有一个圆圈(temp-> newNode-> temp-> newNode ...),所以你将无法通过它。