Skip to content

Instantly share code, notes, and snippets.

@zlargon
Created December 13, 2016 05:01
Show Gist options
  • Save zlargon/a544d9220cf12db95065e6458a797e7f to your computer and use it in GitHub Desktop.
Save zlargon/a544d9220cf12db95065e6458a797e7f to your computer and use it in GitHub Desktop.
public static Tree<T> BFS<T>(Tree<T> root, int target) {
// create Queue, and enqueue root node
Queue<Tree<T>> queue = new Queue<Tree<T>>();
queue.Enqueue(root);
while (queue.Count > 0) {
// dequeue first node
Tree<T> node = queue.Dequeue();
// compare target
if (node.Value == target) {
return node;
}
// enqueue all the children
foreach (Tree<T> child in node.Children) {
queue.Enqueue(child);
}
}
return null;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment