Mirror binay tree - Java

public class TreeNode {
    private TreeNode left;
    private TreeNode right;
    private Object value;

    public TreeNode getLeft() {
        return left;
    }

    public TreeNode setLeft(TreeNode left) {
        this.left = left;
        return this;
    }

    public TreeNode getRight() {
        return right;
    }

    public TreeNode setRight(TreeNode right) {
        this.right = right;
        return this;
    }

    public Object getValue() {
        return value;
    }

    public TreeNode setValue(Object value) {
        this.value = value;
        return this;
    }
}


public class Mirror {

    public static TreeNode getMirror(TreeNode root){
        if(root == null)
            return null;
        else {
            TreeNode temp = new TreeNode();
            temp.setValue(root.getValue());
            temp.setLeft(getMirror(root.getRight()));
            temp.setRight(getMirror(root.getLeft()));

            return temp;
        }
    }

    public static void preOrderTraversal(TreeNode root){
        if(root != null){
            preOrderTraversal(root.getLeft());
            System.out.println(root.getValue());
            preOrderTraversal(root.getRight());
        }
    }

    public static void main(String[] args) {
        TreeNode t1 = new TreeNode();
        TreeNode t2 = new TreeNode();
        TreeNode t3 = new TreeNode();
        TreeNode t4 = new TreeNode();
        TreeNode t5 = new TreeNode();
        TreeNode t6 = new TreeNode();

        t3.setLeft(t2).setRight(t4).setValue(3);
        t2.setLeft(t1).setRight(null).setValue(2);
        t1.setLeft(null).setRight(null).setValue(1);
        t4.setLeft(null).setRight(t5).setValue(4);
        t5.setLeft(null).setRight(t6).setValue(5);
        t6.setLeft(null).setRight(null).setValue(6);

        preOrderTraversal(t3);
        System.out.println("\n");
        preOrderTraversal(getMirror(t3));
    }
}

Output:
1
2
3
4
5
6


6
5
4
3
2
1

Comments