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:
- Set flag = leftMost
- Traverse tree in level order
- At each level print either first or last element of level based on flag value
- 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