Singly linked lists
-  A list has data members head, tail, n
 -  head and tail are pointers to nodes in the list containing the first and last items.
 -  nodes contain an item and a pointer to another node (the single link).
 -  head and tail are both NULL if the list is empty.  Head and tail point to the same node when the list has one item. 
 -  n is the number of items in the list.
 -  The link in the tail node is NULL.
 -  The stack operation push puts a new node at the head.
 -  The stack operation pop removes the head node.
 -  The queue operation enqueue puts a new node at the tail.
 -  The queue operation dequeue is the same as pop.
 -  The deque operations could be addFirst = push, addLast = enqueue, removeFirst = pop. 
 -  What about the deque operation removeLast?