Mid Coding

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.

More from C# Programming Tutorial

All questions for this course