Если у вас отключены узлы (график не подключен), вам придется проходить по графику от каждого узла.Не имеет значения, используете ли вы DFS или BFS, так как вы не прекращаете свой обход при поиске определенного узла.
Я бы вел глобальный список VisitedNodes, чтобы вам не приходилось делать полные обходы из уже посещенныхузлы вместо вашего обычного списка предков "Per-Path", чтобы избежать циклов.