return current//delete link with given key struct nodedelete(int key//start from the first link struct nodecurrent headstruct nodeprevious null//if list is empty if(head =nullreturn null//navigate through list while(current->key !key//if it is last node if(current->next =nullreturn nullelse //store reference to current link previous current//move to next link current current->next//found matchupdate the link if(current =head//change first to point to next link head head->nextelse //bypass the current link previous->next current->nextreturn current