Print nodes at a specific level (BFS)?
void PrintNodesAtLevel(Dictionary<int, List<int>> graph, int start,
int targetLevel) {
var visited = new HashSet<int>();
var queue = new Queue<(int node, int level)>();
Follow on:
queue.Enqueue((start, 0));
visited.Add(start);
while (queue.Count > 0) {
var (node, level) = queue.Dequeue();
if (level == targetLevel) {
Console.WriteLine(node);
if (level > targetLevel) break;
foreach (var neighbor in graph[node]) {
if (!visited.Contains(neighbor)) {
visited.Add(neighbor);
queue.Enqueue((neighbor, level + 1));
Explanation:
BFS traversal with level tracking; print nodes at the requested level.