The two functions remhead() and remtail() are used in combination with addhead() and addtail() to create special list ordering. when you combine AddTail() and RemHead(), you produce a first-in-first-out (FIFO) list. When you combine AddHead() and RemHead() a last-in-first-out (LIFO or stack) list is produced. RemTail() exists for symmetry. Other combinations of these functions can also be used productively. Both remhead() and remtail() remove a node from the list, and return a pointer to the removed node. if the list is empty, the function return a NULL result.