libft/srcs/slist/ft_slist_insert.c
2025-05-31 20:17:01 +02:00

30 lines
526 B
C

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