从链表C中获取最后一个元素

des*_*ted 1 c linked-list

我正在尝试创建一个函数,该函数接受指向链接列表头部的指针,然后返回指向列表末尾项目的指针,或者如果它为空,则返回NULL.

这是我到目前为止所写的内容:

MusicRec * getLastItem(MusicRec * theList)
{
MursicRec * currentElement;
currentElement = theList->next;
while(currentElement != NULL)
{
    theList = currentElement;
    currentElement = currentElement->next;
}

return(0);
}
Run Code Online (Sandbox Code Playgroud)

我感到困惑的是我需要返回的东西theList还是currentElement

Que*_*rez 6

试试这个 :)

MusicRec  *getLastItem(MusicRec *theList)
{
    MursicRec  *currentElement;

    currentElement = theList;
    if (currentElement == NULL) // return NULL is list is empty cf (Captain girafe && learningC)
        return (NULL);
    while(currentElement->next != NULL) // check if next element is null then currentElement = next else return currentElement
      currentElement = currentElement->next;
    return (currentElement);
}
Run Code Online (Sandbox Code Playgroud)