package offer;
/**
* offer interview 19
*/
public class Test19 {
public static class BinaryTreeNode{
int value;
BinaryTreeNode left;
BinaryTreeNode right;
public BinaryTreeNode(){}
public BinaryTreeNode(int value){
this.value = value;
this.left = null;
this.right = null;
}
}
public static void mirror(BinaryTreeNode node){
if (node != null){
BinaryTreeNode tmp = node.left;
node.left = node.right;
node.right = tmp;
mirror(node.left);
mirror(node.right);
}
}
public static void printTree(BinaryTreeNode node){
if (null != node){
printTree(node.left);
System.out.print(node.value + " ");
printTree(node.right);
}
}
public static void main(String[] args){
// 8
// / \
// 6 10
// / \ / \
// 5 7 9 11
BinaryTreeNode root = new BinaryTreeNode(8);
root.left = new BinaryTreeNode(6);
root.right = new BinaryTreeNode(10);
root.left.left = new BinaryTreeNode(5);
root.left.right = new BinaryTreeNode(7);
root.right.left = new BinaryTreeNode(9);
root.right.right = new BinaryTreeNode(11);
printTree(root);
System.out.println();
mirror(root);
printTree(root);
System.out.println();
// 1
// /
// 3
// /
// 5
// /
// 7
// /
// 9
BinaryTreeNode root2 = new BinaryTreeNode(1);
root2.left = new BinaryTreeNode(3);
root2.left.left = new BinaryTreeNode(5);
root2.left.left.left = new BinaryTreeNode(7);
root2.left.left.left.left = new BinaryTreeNode(9);
printTree(root2);
System.out.println();
mirror(root2);
printTree(root2);
System.out.println();
// 0
// \
// 2
// \
// 4
// \
// 6
// \
// 8
BinaryTreeNode root3 = new BinaryTreeNode(0);
root3.right = new BinaryTreeNode(2);
root3.right.right = new BinaryTreeNode(4);
root3.right.right.right = new BinaryTreeNode(6);
root3.right.right.right.right = new BinaryTreeNode(8);
printTree(root3);
System.out.println();
mirror(root3);
printTree(root3);
System.out.println();
}
}