Level of Each node in a Tree from source node (using BFS)
- Difficulty Level : Easy
- Last Updated : 01 Aug, 2022
Given a tree with v vertices, find the level of each node in a tree from the source node.
Output : Node Level 0 0 1 1 2 1 3 2 4 2 5 2 6 2 7 3 Explanation :
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.