Sorry, I misunderstood; I thought you meant Last as in "last remaining".
You have a list like this:
head-->first-->second-->third-->last
and you want to delete second because she is a trainee.
your code does this:
ptrCurrent points to second
show second
set ptrCurrent to point to third
delete second
Unless the destructor does some work on the entire list, you have this list:
head-->first-->[deleted second]-->third-->last
1) Does the destructor move first's next pointer to point to third (second's next)?
2) If you delete 'first', who updates the head pointer to point to first's next pointer?
3) If you delete 'last' does third get updated to point to null (last's next)? (note this would work fine if (1) works fine, I think)