Может быть, это немного глупо, поскольку я не программист на C #, а многомерный массив, содержащий все ссылки внутри, в зависимости от глубины измерений, позволяющий узнать, какой путь содержит меньше обручей.
Это всего лишь мысль, хотя это, безусловно, выполнимо в теории, поскольку языкового ограничения на количество измерений, которое может иметь массив, не существует, я почти уверен, что он действительно потребляет память!
Примерно так:
[source] -> [source link] -> ['source link' link] -> etc
-> [source link] -> ['source link' link] -> etc
-> [source link] -> ['source link' link] -> etc
-> [source link] -> ['source link' link] -> [target]
-> [source link] -> ['source link' link] -> etc