Generic LinkedList implementation along with iterator