ней есть баги)
для рекурсивного обрашения на связанного списка начиная c текушего узла. И когда доходит последный ноде проста обратно поставляет ноды на лист
А, кажется осознал: она меняет ссылки у той части списка, которая начинается с curr (с предусловием prev->next == curr), и возвращает новую голову. (Но такие инварианты стоит в коде писать, чтобы читатель не гадал) Если так, то 1) Неясно, почему функция не статическая 2) Можешь ли ты объяснить, зачем нужны вторая и третья строчка в reverse()? Казалось бы, вызов _reverse_recursive целиком развернул список, и больше ничего менять не надо. Более того, кажется, что в этот момент цикл и возникает.
1. я только что начинаю изучать C++ 2. мне же нужно как то изменить сам списку, т.е я получил списка head, и я хотел поменят орг лист(this) с новый созданным.
Если отреверсить список длины хотя бы, то у него голова меняется. Если ты пытаешься какими-то хаками сохранить ту же голову, то у тебя уже не реверс, а что-то другое.
Обсуждают сегодня