Не могу удалить последний элемент очереди

Не могу удалить последний элемент очереди , вот код функции

void deletelast(Node *head)
{
    Node *temp = head;
    while (temp != NULL)
    {
        temp = temp->next;
        if (temp->next== NULL)
        {
            free(temp);
        }
    }
} 

Ответы (1 шт):

Автор решения: SLARDAr15

В итоге сам додумался

void deletelast(Node *head)
{
    Node *temp = head;
    Node *temp2;
    while (temp != NULL)
    {
        temp = temp->next;
        if (temp->next->next== NULL)
        {
            temp2 = temp->next;
            temp->next = temp2;
            free(temp2);
            temp->next = NULL;
            break;
        }
    }
}
→ Ссылка