1) Использование указателя для этого глупо. Но это то, что вам было сказано.
2) Если вы используете указатель, то эта функция вернет адрес. Вот что такое указатели. Вы не можете это изменить. Хитрость заключается в разыменовании указателя при попытке печати. Таким образом, он не будет печатать адрес, а вместо этого будет печатать то, на что указывает указатель. Если вам нужна помощь в этом, отправьте свой печатный код.
3) Вот как вы делаете это с помощью указателей
template <class T>
SinglyLinkedList<T>* DoublyLinkedList<T>:: Function() {
SinglyLinkedList<T>* list1 = new SinglyLinkedList<T>();
DLLnode<T>*p = head;
while (p!=NULL) {
list1->addtoHead(p->value);
p=p->next;
}
return list1;
}
Это второй случай за последние дни, когда постерам было сказано делать что-то глупое своими профессорами университета. Ну хорошо.