- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
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 дня получилось это.
MOXHATKA 04.10.2020 06:21 # +2
bormand 04.10.2020 07:58 # +3
Хм, за 5 минут независимо от длины списка? Во валят!
bormand 04.10.2020 08:06 # 0
oaoaoammm 04.10.2020 09:22 # 0
А потом за часок сидения с бумажкой и ручкой до меня это дошло, и я переписал как переписал.
bormand 04.10.2020 08:25 # +1
bormand 04.10.2020 08:36 # +2
real_escape_string 07.11.2020 16:01 # 0
127.0.0.1
rotoeb 07.11.2020 18:51 # −1