Глубокая копия кругового связанного списка

Может кто-нибудь поделиться своими взглядами на то, как мы можем сделать глубокую копию кругового связанного списка в C# (возможное объяснение кода)?

В основном то, что я искал, - это как мы копируем один круговой единый связанный список, в котором есть цикл, а затем делаем его полную копию...

У нас есть несколько алгоритмов, которые могут идентифицировать цикл в связанном списке, а затем вычислить заголовок списка. Но после этого, как мы отделяем копию от всего списка..

1 ответ

Почему бы просто не сохранить ссылку на первый элемент, с которого вы начинаете, и использовать его в качестве заголовка для своей копии, и продолжать двигаться к 'Next() пока не встретишь этот самый первый элемент?

Как только вы связываете последний элемент вашего нового связанного списка с первым?

Очевидно, для каждого элемента вы делаете какой-то DeepClone() это реализуется этим классом.

Другие вопросы по тегам