Кресты / Говнокод #27001 0 12345678910111213141516171819202122232425 Node* reverse(Node* head) { Node *end = head, *current = head; while (end->next != nullptr) { end = end->next; } Node *initial_end = end, *temp = nullptr, *temp_2 = nullptr; end->next = current; temp = current; current = current->next; temp->next = nullptr; while (current != initial_end) { temp_2 = initial_end->next; initial_end->next = current; temp = current; current = current->next; temp->next = temp_2; } return initial_end; } Я где-то прочитал, что на собесе нужно написать переворот односвязного списка за 5 минут... Спустя 2 дня получилось это. Запостил: oaoaoammm, 04.10.2020 (Updated 04.10.2020) Комментарии (8) RSS MOXHATKA 6 лет ago # 0 Теперь смотрим, как это делается на "PHP": $list=array_reverse($list); Ответить bormand 6 лет ago # 0 > за 5 минут Хм, за 5 минут независимо от длины списка? Во валят! Ответить bormand 6 лет ago # 0 Эм, а этот код вообще что-то меняет в списке? Блин, внатуре переворачивает. Ответить oaoaoammm 6 лет ago # 0 ⇈ Я за два дня написал, что оно мне передрачивало список (собирало его циклично, добавляя первый элемент в конец) А потом за часок сидения с бумажкой и ручкой до меня это дошло, и я переписал как переписал. Ответить bormand 6 лет ago # 0 Поучаствую в специальной олимпиаде:Node *p = nullptr; while (head) { Node *tmp = head; head = head->next; tmp->next = p; p = tmp; } return p; Ответить bormand 6 лет ago # 0 ⇈ Node *p = nullptr; while (head) { std::swap(head, p); std::swap(p->next, head); } return p; Ответить real_escape_string 6 лет ago # 0 Почти гет. 127.0.0.1 Ответить rotoeb 6 лет ago # 0 ⇈ Твой отец тоже почти успел. Ответить Добавить комментарий Отменить ответ Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю: А не использовать ли нам bbcode? [b]жирный[/b] — жирный [i]курсив[/i] — курсив [u]подчеркнутый[/u] — подчеркнутый [s]перечеркнутый[/s] — перечеркнутый [blink]мигающий[/blink] — мигающий [color=red]цвет[/color] — цвет (подробнее) [size=20]размер[/size] — размер (подробнее) [code=<language>]some code[/code] (подробнее)
MOXHATKA 6 лет ago # 0 Теперь смотрим, как это делается на "PHP": $list=array_reverse($list); Ответить
bormand 6 лет ago # 0 Эм, а этот код вообще что-то меняет в списке? Блин, внатуре переворачивает. Ответить
oaoaoammm 6 лет ago # 0 ⇈ Я за два дня написал, что оно мне передрачивало список (собирало его циклично, добавляя первый элемент в конец) А потом за часок сидения с бумажкой и ручкой до меня это дошло, и я переписал как переписал. Ответить
bormand 6 лет ago # 0 Поучаствую в специальной олимпиаде:Node *p = nullptr; while (head) { Node *tmp = head; head = head->next; tmp->next = p; p = tmp; } return p; Ответить
bormand 6 лет ago # 0 ⇈ Node *p = nullptr; while (head) { std::swap(head, p); std::swap(p->next, head); } return p; Ответить
Хм, за 5 минут независимо от длины списка? Во валят!
А потом за часок сидения с бумажкой и ручкой до меня это дошло, и я переписал как переписал.
127.0.0.1