libft/srcs/slist/ft_slist_insert.c

32 lines
No EOL
546 B
C

#if USE_SLIST
#include "libft.h"
int ft_slist_insert(t_slist **lst, t_slist *node, int index)
{
t_slist *curr = *lst;
t_slist *prev = NULL;
int i = 0;
if (index < 0 || !node)
return (-1);
if (index == 0)
{
node->next = *lst;
*lst = node;
return (0);
}
while (curr && i < index)
{
prev = curr;
curr = curr->next;
i++;
}
if (i == index)
{
prev->next = node;
node->next = curr;
return 0;
}
return (-1);
}
#endif