Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

H. Частичный разворот

В этой задаче по умолчанию выбран компилятор Make. Решение отправляется в виде файла с расширением, соответствующим используемому языку.

В этой задаче требуется сделать разворот части односвязного списка. Каждая вершина списка описывается структурой Node, каждый экземпляр хранит указатель на следующую вершину или null (nullptr, None, nil), если вершина последняя. По заданным индексам from и to разверните все вершины на отрезке с from до to включительно.

Заметьте, что нумерация в индексах from и to с единицы.

Пример для списка из пяти вершин с разворотом от второй до четвертой вершины представлен на рисунке ниже.

IMG

Формат ввода

Реализуйте функцию 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 должна возвращать голову изменённого списка. Создавать вершины заново нельзя.