{
Node *head = this->_reverse_recursive(nullptr, this);
this->val = head->val;
this->next = head->next;
}
// .cpp
head->reverse();
(2)
for (Node *curr = head; curr != nullptr; curr = curr->next)
{
std::cout << curr->val << " ";
}
есть задачка нужно reverse сделать singl-linked листа.
У меня проблема с бесконечного цикла. Не могу решить. когда рекурсивно reverse сделаю последный елементь это бeltnm сам адресс сам this'а. И если я this->next = head->next буду сделать естественно (2) код бесконечно работает как я могу избежать этого ?
1) Тебе кажется в @supapro 2) Покажи (там) полный код, тут как минимум не видно _reverse_recursive
Node *Node::_reverse_recursive(Node *prev, Node *curr) { Node *head = curr; if (curr->next != nullptr) { head = this->_reverse_recursive(curr, curr->next); } curr->next = prev; return head; }
Обсуждают сегодня