В этой задаче по умолчанию выбран компилятор Make. Решение отправляется в виде файла с расширением, соответствующим используемому языку.
В этой задаче требуется сделать разворот части односвязного списка. Каждая вершина списка описывается структурой Node, каждый экземпляр хранит указатель на следующую вершину или null (nullptr, None, nil), если вершина последняя. По заданным индексам from и to разверните все вершины на отрезке с from до to включительно.
Заметьте, что нумерация в индексах from и to с единицы.
Пример для списка из пяти вершин с разворотом от второй до четвертой вершины представлен на рисунке ниже.
Реализуйте функцию Reverse, которая принимает голову списка и два целочисленных индекса.
Используйте шаблон:
package main
// Comment it before submitting
type Node struct {
data string
Next *Node
}
func Reverse(head *Node, left int, right int) *Node {
// Your code
// “ヽ(´▽`)ノ”
}
Гарантируется, что в списке есть хотя бы одна вершина.
Суммарное число вершин не превосходит 105.
Функция Reverse должна возвращать голову изменённого списка. Создавать вершины заново нельзя.