Add Q2 answer

Please review, thanks!
Also, I tried to fully conform to the style guide, please let me know if there's anything I'm missing.
For pop, returning the head node pointer is fine; as long as caller remember to free the memory. As for contains, returning the node pointer is fine because it's telling the caller where the node is.