剑指offer第19题java版

闲话少说,直接上代码:

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 listNode=new ArrayDeque();
		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

你可能感兴趣的:(面试&基础算法,剑指offer,面试题,java,二叉树)