Code360 powered by Coding Ninjas X Naukri.com. Code360 powered by Coding Ninjas X Naukri.com

Mirror Binary tree

Easy
0/40
3 upvotes
Asked in company
Hewlett Packard Enterprise

Problem statement

For a given Binary Tree of type integer, update it with its corresponding mirror image.

Example:

Alt text

Detailed explanation ( Input/output format, Notes, Images )
Input Format:
The first and the only line of input will contain the node data, all separated by a single space. Since -1 is used as an indication whether the left or right node data exist for root, it will not be a part of the node data.
Output Format:
The only line of output prints the mirrored tree in a level-wise order. 
Each level will be printed on a new line. Elements printed at each level will be separated by a single line.
Note:
You are not required to print anything explicitly. It has already been taken care of.
Constraints:
1 <= N <= 10^5
Where N is the total number of nodes in the binary tree.

Time Limit: 1 sec
Sample Input 1:
1 2 3 4 5 6 7 -1 -1 -1 -1 -1 -1 -1 -1
Sample Output 1:
1 
3 2 
7 6 5 4
Sample Input 2:
5 10 6 2 3 -1 -1 -1 -1 -1 9 -1 -1
Sample Output 2:
5 
6 10 
3 2 
9
Mirror Binary tree
All tags
Sort by
Search icon

Interview problems

Mirror Binary tree

void mirrorBinaryTree(BinaryTreeNode<int>* root) {

    // Write your code here

    if(root==NULL) return;

    swap(root->left,root->right);

    if(root->left) mirrorBinaryTree(root->left);

    if(root->right) mirrorBinaryTree(root->right);

}
45 views
0 replies
0 upvotes

Interview problems

Java simple and easy recursive approach :

public static void mirrorBinaryTree(BinaryTreeNode<Integer> root){

        if(root==null) return;

        mirrorBinaryTree(root.left);

        mirrorBinaryTree(root.right);

        if(root.left!=null || root.right!=null){

            BinaryTreeNode<Integer> temp = root.left;

            root.left = root.right;

            root.right = temp;

        }

    }

18 views
0 replies
0 upvotes

Interview problems

Python Solution

def mirrorBinaryTree(root) :
	if root == None:
		return
	else:
		temp = root
		mirrorBinaryTree(root.left)
		mirrorBinaryTree(root.right)
		
		#swap the pointers
		temp = root.left
		root.left = root.right
		root.right = temp
		
def inOrder(root):
	if root == None:
		return
	inOrder(root.left)
	print(root.data, end=" ")
	inOrder(root.right)
21 views
0 replies
0 upvotes

3 line code C++

void mirrorBinaryTree(BinaryTreeNode<int>* root) {

    // Write your code here

    if(root==NULL)return;

    swap(root->left,root->right);

    if(root->left)mirrorBinaryTree(root->left);

    if(root->right)mirrorBinaryTree(root->right);

}

 

49 views
0 replies
0 upvotes

Interview problems

mirrorBinaryTree

public class Solution {

public static void mirrorBinaryTree(BinaryTreeNode<Integer> root){  //Your code goes here        if(root==null){            return;        }        BinaryTreeNode<Integer> temp = root.left;        root.left=root.right;        root.right=temp;                mirrorBinaryTree(root.left);        mirrorBinaryTree(root.right); } }

Mirror Binary tree

java

81 views
0 replies
1 upvote

Interview problems

Discussion thread on Interview Problem | Mirror Binary tree

Hey everyone, creating this thread to discuss the interview problem - Mirror Binary tree.

 

Practise this interview question on Coding Ninjas Studio (hyperlinked with the following link): Mirror Binary tree

 

84 views
3 replies
0 upvotes
Full screen
Console