剑指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<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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值