在链接列表的插入最后一个函数中交换两行时出错

时间:2015-10-29 12:14:36

标签: c++ linked-list

我不明白单链表中插入最后一个函数中的一件事。这个函数会在最后一个节点之后插入新项目。

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;
}

1 个答案:

答案 0 :(得分:1)

newNode->next=temp->next;

NewNode->next应该保留null,因为您要添加到列表的末尾。现在你的列表最后会有一个圆圈(temp-> newNode-> temp-> newNode ...),所以你将无法通过它。