// Задача 02 — связный список. Заполни реализации. #include struct Node { int value; Node* next; }; // Развернуть список на месте. Вернуть новую голову. Node* reverse_list(Node* head) { (void)head; return nullptr; // TODO } // Середина списка: для чётного количества — второй из двух средних узлов. Node* find_middle(Node* head) { (void)head; return nullptr; // TODO } // Есть ли цикл в списке. bool has_cycle(Node* head) { (void)head; return false; // TODO }