Extreme nodes print in alternate order in Binary Tree

Extreme nodes print in alternate order

Given a binary tree, print nodes of extreme corners of each level but in alternate order.
  • print rightmost node of 1st level
  • print leftmost node of 2nd level
  • print rightmost node of 3rd level
  • print leftmost node of 4th level
  • print rightmost node of 5th level
Algorithm:
  1. Set flag = leftMost
  2. Traverse tree in level order
  3. At each level print either first or last element of level based on flag value
  4. After print switch the flag (leftMost or rightMost)

Latest Source Code:
Github: BinaryTreeAlternateExtremeNodesPrinter.java


Output:

                25                               
              / \               
             /   \              
            /     \             
           /       \            
          /         \           
         /           \          
        /             \         
       /               \        
       18               50               
      / \                / \       
     /   \              /   \      
    /     \            /     \     
   /       \          /       \    
   19       20       35         60       
    \     / \        / \       / \   
     \   /   \       /   \     /   \  
     15   18   25   20   40   55   70   
                  \             
                  25             
                                                                

Extreme nodes in alternate order : 25 18 60 15 25 
Process finished with exit code 0
Author: Hrishikesh Mishra