← Назад к списку задач

60. Copy List with Random Pointer

Связные списки Уровень 2

Описание задачи

Необходимо создать новую копию связного списка, где каждый узел новой копии соответствует исходному узлу, и случайные указатели (random pointers) в новой копии правильно сопоставлены с соответствующими узлами в исходном списке.

Вход:
head: Указатель на голову исходного связного списка. Каждый узел в списке имеет три поля: val (целое число), next (указатель на следующий узел) и random (указатель на случайный узел).

Выход:
Указатель на голову новой, скопированной связной список с правильно установленными указателями next и random. Возвращается новый список, где каждый узел соответствует исходному узлу, а random указатели корректно сопоставлены.

Режим обучения Готово

Объяснение решения уже подготовлено. Нажмите кнопку, чтобы посмотреть.

Ваше решение

Подсказка (готовое решение)

    def __init__(self, x, next=None, random=None):