public void AddFirst(T data)
        {
            if (Count == 0)
            {
                Head = new Node <T>(data);
            }
            else
            {
                Node <T> Temp = new Node <T>(data);
                Temp.setChild(Head);
                Head = Temp;
            }

            Count++;
        }
        public void Reverse()
        {
            Node <T> prev    = null;
            Node <T> current = Head;
            Node <T> next;

            while (current != null)
            {
                next = current.getChild();
                current.setChild(prev);
                prev    = current;
                current = next;
            }
            Head = prev;
        }
        private Node <T> ReverseRecursiveMethod(Node <T> startingNode)
        {
            if (startingNode == null)
            {
                return(null);
            }

            if (startingNode.getChild() == null)
            {
                return(startingNode);
            }

            Node <T> rest = startingNode.getChild();

            startingNode.setChild(null);

            Node <T> reverseRest = ReverseRecursiveMethod(rest);

            rest.setChild(startingNode);

            return(reverseRest);
        }