闲话少说,直接上代码:
package targetOffer;
//import java.util.List;
import java.util.*;
public class Mirror_19 {
class Node{
private int value;
Node right;
Node left;
public Node(int value,Node left,Node right)
{
this.value=value;
this.right=right;
this.left=left;
}
public Node(int i)
{
value=i;
right=null;
left=null;
}
}
void mirror(Node root)
{
if(root==null||root.right==null&&root.left==null)
{
return ;
}
Node pTemp=root.left;
root.left=root.right;
root.right=pTemp;
mirror(root.right);
mirror(root.left);
}
void printTree(Node root)
{
if(root==null)
return ;
Queue<Node> listNode=new ArrayDeque<Node>();
listNode.add(root);
while(!listNode.isEmpty()){
Node temp=listNode.poll();
System.out.print(temp.value+"\t");
if(temp.left!=null)
listNode.offer(temp.left);
if(temp.right!=null)
listNode.offer(temp.right);
}
System.out.println();
}
public void test(){
Node node6=new Node(6);
Node node7=new Node(7);
Node node4=new Node(4);
Node node5=new Node(5);
Node node2=new Node(2,node4,node5);
Node node3=new Node(3,node6,node7);
Node root=new Node(1,node2,node3);
printTree(root);
mirror(root);
printTree(root);
mirror(root);
printTree(root);
}
public static void main(String args[])
{
Mirror_19 mi=new Mirror_19();
mi.test();
}
}
结果:
1 2 3 4 5 6 7
1 3 2 7 6 5 4
1 2 3 4 5 6 7