Ticker

20/recent/ticker-posts

Mirror View of Binary Tree

Mirror Tree

In a binary tree, the left and right nodes are swapped which result produces the mirror view of a binary tree.

Binary Tree

A binary tree is a non-linear data structure in which every node has at a most maximum of two children. So, in terms of binary tree construction, we should have a node with three-pointers one to hold data and two for left and right nodes.



class Tree {
    public class Node {
        int data;
        Node right;
        Node left;

        Node(int data) {
            this.data = data;
            left = right = null;
        }
    }
In this above tree class with inner node class has one instance member data and two objects of Node class left and right. For every new node, we use Node(int data ) constructor to assign data to that node and set left and right as null.

 Tree.Node t = new Tree().new Node(1);
        t.left = new Tree().new Node(2);
        t.left.left = new Tree().new Node(4);
        t.left.right = new Tree().new Node(5);
        t.right = new Tree().new Node(3);

 The traversal of the above binary tree results in 1 2 4 5 3

public void traversal(Node root) {
        
        if (root.left != null) {
            traversal(root.left);
        }
        System.out.print(root.data + " ");
        if (root.right != null) {
            traversal(root.right);
        }
}

But on swapping the left node with the right on the same level it converts into a mirror tree.


 public Node mirror(Node root) {
        if (root == null)
            return root;

        
        Node left = mirror(root.left);
        Node right = mirror(root.right);

      
        root.left = right;
        root.right = left;

        return root;
    }
In the above program in every recursive call the values are swapped which produces a mirror
view on traversal.
public void traversal(Node root) {
        
        if (root.left != null) {
            traversal(root.left);
        }
        System.out.print(root.data + " ");
        if (root.right != null) {
            traversal(root.right);
        }
}

The mirror view of the binary tree is: 1 3 2 5 4


I hope you guys liked this article, here are some other articles you may like:

Post a Comment

0 Comments