You have a special case for the root node already in your code.
else if(counter == 1)
{
delete root;
root = NULL;
}
else Why not just print it there before you delete it?
In the other case, where there is more than just the root node, print the root node
before you find and delete the last node.