Left-Right traversal of all the levels of Binary tree
Given a Binary Tree rooted at node 1, the task is to print the elements in the following defined order.
- First, print all elements of the last level in an alternate way such as first you print leftmost element and then rightmost element & continue in this until all elements are traversed of last level.
- Now do the same for the rest of the levels.
Input: 1 / \ 2 3 / \ / 4 5 6 Output: 4 6 5 2 3 1 Explanation: First print all elements of the last level which will be printed as follows: 4 6 5 Now tree becomes 1 / \ 2 3 Now print elements as 2 3 Now the tree becomes: 1 Input: 1 / \ 2 3 Output: 2 3 1
- Make a bfs call and store all the nodes present at level i int a vector array.
- Also keep track of maximum level reached in a bfs call.
- Now print the desired pattern starting from max level to 0
Below is the implementation of the above approach:
4 6 5 2 3 1
Time Complexity: O(V + E), where V is total number of vertices and E is total number of edges.
Auxiliary Space: O(V).