public class BinaryTreeMirror27_ {
static class Node {
int val;
Node left;
Node right;
public Node(int val){
this.val = val;
}
@Override
public String toString() {
return "Node{" +
"val=" + val +
", left=" + left +
", right=" + right +
'}';
}
}
public static void main(String[] args) {
Node root = new Node(8);
Node node02 = new Node(8);
Node node03 = new Node(7);
Node node04 = new Node(9);
Node node05 = new Node(2);
Node node06 = new Node(4);
Node node07 = new Node(7);
root.left = node02;
root.right = node03;
node02.left = node04;
node02.right = node05;
node05.left = node06;
node05.right = node07;
System.out.println(root);
mirror(root);
System.out.println(root);
}
private static void mirror(Node root) {
if (root == null) {
return;
}
if (root.left == null && root.right == null)
return;
Node temp = root.left;
root.left = root.right;
root.right = temp;
if (root.left != null)
mirror(root.left);
if (root.right != null)
mirror(root.right);
}
}