different algorithm for single linked list delete - much more efficient