start is a node pointer that points to the first element.
What I'm not understanding is how does deleting a pointer to a node delete the node itself? From what I understand about pointers, "start" just stores the address of the node. How does deleting the address delete the node itself?
http://en.cppreference.com/w/cpp/language/delete
The pointer refers to an object previously created by a new-expression. Writing delete p destroys the object *p and releases the memory allocated for it, and does nothing to p.