ft_ls/lib/libft/ft_lstremove_back.c
2025-01-10 09:12:14 +01:00

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