This function is deleting a node from linked list. It is OK with nodes which are not the first node. When I send anchor to function, I lose the link to the rest of the list. Why is it so?


Code:
void delete(visit_ptr_node_type this_is_the_node)
{
  visit_ptr_node_type one_back;
  if(anchor == NULL)
    printf("\n The list is empty");
  else
    {
    if(this_is_the_node==anchor)
      anchor=anchor->next_ptr;
    else
      {
      one_back=anchor;
      while(one_back->next_ptr != this_is_the_node)
	one_back=one_back->next_ptr;
      one_back->next_ptr = (this_is_the_node) ->next_ptr;
      }
    free(this_is_the_node);
    }
}
TIA,
Ronen