Re[10]: Зачем просят перевернуть строку на интервью?
От: B0FEE664  
Дата: 11.10.18 02:20
Оценка:
Здравствуйте, 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;
}

И каждый день — без права на ошибку...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.