Здравствуйте, Nuzhny, Вы писали:
Тё>>
Тё>>class Node {
Тё>>public:
Тё>>char *value;
Тё>>Node *next;
Тё>>}
Тё>>Node* reverse(Node *head) {
Тё>>...
Тё>>}
Тё>>
Вот, что у меня получилось за 15 минут в 4 часа утра:
Node* reverse(Node *head)
{
if ( nullptr == head )
return head;
Node* pPrev = nullptr;
Node* pNext = head->next;
while(nullptr != pNext)
{
head->next = pPrev;
pPrev = head;
head = pNext;
pNext = head->next;
}
return head;
}
или
Node* reverse2(Node *head)
{
if ( nullptr != head->next )
return head;
Node* pNewHead = reverse2(head->next);
head->next = head;
return pNewHead;
}
Node* reverse(Node *head)
{
if ( nullptr == head )
return head;
Node* pNewHead = reverse2(head->next);
head->next = nullptr;
return pNewHead;
}