Given a Binary Tree having odd and even elements, sink all it’s even valued nodes such that no node with even value could be a parent of a node with odd value.
There can be multiple outputs for a given tree, we need to print one of them. It is always possible to convert a tree (Note that a node with odd nodes and all even nodes follows the rule)
Input: 1 / \ 5 8 / \ / \ 2 4 9 10 Output: 1 5 9 2 4 8 10 Level order traversal after sinking all the nodes Input: 4 / \ 2 1 Output: 4 2 1
Explanation: In the first case Given tree 4 / \ 2 1 There are two trees possible 1 1 / \ OR / \ 2 4 4 2 In the second example also, Given tree 1 / \ 5 8 / \ / \ 2 4 9 10 There are more than one tree that can satisfy the condition 1 1 / \ / \ 5 9 OR 5 9 / \ / \ / \ / \ 2 4 8 10 4 2 8 10
- Basically, it is required to swap the even value of a node with odd value of one of its descendants.
- The idea is to traverse the tree in postorder fashion.
- Since we process in postorder, for each even node encountered, it’s left and right subtrees are already balanced (sinked).
- Check if it’s an even node and its left or right child has an odd value. If odd value is found, swap the node’s data with that of odd child node and call the procedure on the odd child to balance the subtree.
- If both children have even values, that means that all its descendants are even.
Below is the implementation of the idea:
1 5 9 2 4 8 10
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.
- Sink Odd nodes in Binary Tree
- Construct XOR tree by Given leaf nodes of Perfect Binary Tree
- Sum of all nodes in a binary tree
- XOR of path between any two nodes in a Binary Tree
- Sum of all leaf nodes of binary tree
- Product of all nodes in a Binary Tree
- Sum of all nodes at Kth level in a Binary Tree
- Sum of all the Boundary Nodes of a Binary Tree
- Sum of nodes in the right view of the given binary tree
- Sum of nodes in top view of binary tree
- Difference between sum of even and odd valued nodes in a Binary Tree
- Diameter of a Binary Indexed Tree with N nodes
- Print Levels of all nodes in a Binary Tree
- Find distance between two nodes of a Binary Tree
- Print nodes in the Top View of Binary Tree | Set 3
- Sum of all the child nodes with even grandparents in a Binary Tree
- Print the nodes of Binary Tree having a grandchild
- Given a binary tree, how do you remove all the half nodes?
- Print Nodes in Top View of Binary Tree
- Nodes at Kth level without duplicates in a Binary Tree
Improved By : SHUBHAMSINGH10