如果链接列表中有一个节点,并且您尝试在我的程序中从后面删除它,则会出错。我想我知道为什么,但我无法解决。看到这是一个赋值,规则非常严格,我应该逐字实现一个头,而对于removeFromBack函数,我们应该删除后节点,然后返回指向被删除节点的指针。但是如果只剩下一个节点,我就不能取消引用ptr->;然后将其设为null,这反过来又给我带来了问题。如何在不更改任何参数的情况下解决此问题?这是我的代码
MusicRec * removeFromBack(MusicRec * theList)
{
MusicRec *record;
if(theList == NULL)
{
return NULL;
}
else if(theList->next == NULL)
{
record = theList;
theList = NULL;
return record;
}
while(theList->next->next != NULL)
{
theList = theList->next;
}
record = theList->next;
theList->next = NULL;
return record;
}