15. delete element on head of list
if( numlist->value == 23 ){ // test value of head node
backup = numlist; // backup head node
numlist = numlist->next; // move head to next node
23
free(backup); // free backup node
}
25
NULL
24backup
16. delete element between list
ptr = ptr->next; // move ptr to next node
if( (ptr->next)->value == 24 ){ // test value of next node
backup = ptr->next; // backup next node
ptr->next = (ptr->next)->next; // point next node to skip 1 node
23
free(backup); // free backup node
}
25
NULL
24
backup
17. delete element on end of list
while(ptr->next!=NULL){
ptr = ptr->next; // move ptr to next node
if( (ptr->next)->value == 25 ){ // test value of next node
backup = ptr->next; // backup next node
ptr->next = (ptr->next)->next; // point next node to skip 1 node
23
free(backup); // free backup node
break;
}
} 25
NULL
24
ptr backup