Given a tree with v vertices, find the level of each node in a tree from the source node.
Input : Output : Node Level 0 0 1 1 2 1 3 2 4 2 5 2 6 2 7 3 Explanation : Input: Output : Node Level 0 0 1 1 2 1 3 2 4 2 Explanation:
BFS(Breadth-First Search) is a graph traversal technique where a node and its neighbours are visited first and then the neighbours of neighbours. In simple terms, it traverses level-wise from the source. First, it traverses level 1 nodes (direct neighbours of source node) and then level 2 nodes (neighbours of source node) and so on. The BFS can be used to determine the level of each node from a given source node.
- Create the tree, a queue to store the nodes and insert the root or starting node in the queue. Create an extra array level of size v (number of vertices) and create a visited array.
- Run a loop while size of queue is greater than 0.
- Mark the current node as visited.
- Pop one node from the queue and insert its childrens (if present) and update the size of the inserted node as level[child] = level[node] + 1.
- Print all the node and its level.
Nodes Level 0 --> 0 1 --> 1 2 --> 1 3 --> 2 4 --> 2 5 --> 2 6 --> 2 7 --> 3
- Time Complexity: O(n).
In BFS traversal every node is visited only once, so Time Complexity is O(n).
- Space Complexity: O(n).
The space is required to store the nodes in a queue.
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.
- Print all paths from a given source to a destination using BFS
- Count the number of nodes at given level in a tree using BFS.
- Diameter of n-ary tree using BFS
- Difference between sums of odd level and even level nodes in an N-ary Tree
- Minimum cost path from source node to destination node via an intermediate node
- BFS vs DFS for Binary Tree
- Check if the given permutation is a valid BFS of a given Tree
- Maximum value at each level in an N-ary Tree
- Check if a given directed graph is strongly connected | Set 2 (Kosaraju using BFS)
- Traversing directory in Java using BFS
- BFS using STL for competitive coding
- Water Jug problem using BFS
- BFS using vectors & queue as per the algorithm of CLRS
- Detect cycle in an undirected graph using BFS
- Detect Cycle in a Directed Graph using BFS
- Finding the path from one vertex to rest using BFS
- Islands in a graph using BFS
- Count number of ways to reach destination in a Maze using BFS
- Implementation of BFS using adjacency matrix
- Program to print all the non-reachable nodes | Using BFS
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.