26 lines
536 B
C
26 lines
536 B
C
|
|
#include "libft.h"
|
|
|
|
static void delete(t_list **deleted, void (*del)(void*));
|
|
|
|
void ft_lstremove_back(t_list **lst, void (*del)(void*))
|
|
{
|
|
if (lst == nullptr || del == nullptr)
|
|
return;
|
|
|
|
if ((*lst)->next == nullptr)
|
|
return delete(lst, del);
|
|
|
|
t_list *cur = *lst;
|
|
while (cur->next != nullptr && cur->next->next != nullptr)
|
|
cur = cur->next;
|
|
|
|
delete(&(cur->next), del);
|
|
}
|
|
|
|
static void delete(t_list **deleted, void (*del)(void*)) {
|
|
del(*deleted);
|
|
free(*deleted);
|
|
*deleted = nullptr;
|
|
}
|