Как написать функцию для удаления узла в односвязном линейном списке?
Смог написать 3 функции для удаления узлов в списке:
void remove_node(node *headd) {
if (headd->next == NULL) {
free(headd);
}
node * current = headd;
while (current->next->next != NULL)
{
current = current->next;
}
current->next = NULL;
free(current->next);
current->next = NULL;
}
node * deletelem(node *lst, node *root)
{
node *temp;
temp = root;
while (temp->next != lst)
{
temp = temp->next;
}
temp->next = lst->next;
free(lst);
return(temp);
}
struct list * deletehead(node *root)
{
struct list *temp;
temp = root->next;
free(root);
return(temp);
}
Как мне на их основе написать функцию для удаления узла по индексу?.