Глубокая копия кругового связанного списка
Может кто-нибудь поделиться своими взглядами на то, как мы можем сделать глубокую копию кругового связанного списка в C# (возможное объяснение кода)?
В основном то, что я искал, - это как мы копируем один круговой единый связанный список, в котором есть цикл, а затем делаем его полную копию...
У нас есть несколько алгоритмов, которые могут идентифицировать цикл в связанном списке, а затем вычислить заголовок списка. Но после этого, как мы отделяем копию от всего списка..
1 ответ
Почему бы просто не сохранить ссылку на первый элемент, с которого вы начинаете, и использовать его в качестве заголовка для своей копии, и продолжать двигаться к 'Next()
пока не встретишь этот самый первый элемент?
Как только вы связываете последний элемент вашего нового связанного списка с первым?
Очевидно, для каждого элемента вы делаете какой-то DeepClone()
это реализуется этим классом.