public void remove(){
            if (current == null)
                throw new NoSuchElementException();
            if (current == first){
                first = first.link;
                current = (LinkedListNode<T>) first;
                previous = null;
                if (first == null)
                    last = null;
            }else{
                previous.link = current.link;
                if (current == last)
                {
                last = first;
                while (last.link != null)
                last = last.link;
                }
                current = current.link;
            }
        
            count--;
        }