题解 | #二叉树的镜像#
二叉树的镜像
http://www.nowcoder.com/practice/a9d0ecbacef9410ca97463e4a5c83be7
import java.util.*;
/*
* public class TreeNode {
* int val = 0;
* TreeNode left = null;
* TreeNode right = null;
* public TreeNode(int val) {
* this.val = val;
* }
* }
*/
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param pRoot TreeNode类
* @return TreeNode类
*/
public TreeNode Mirror (TreeNode pRoot) {
// write code here
if(pRoot == null){
return null;
}
Queue<TreeNode> we = new LinkedList<TreeNode>();
Queue<TreeNode> you = new LinkedList<TreeNode>();
TreeNode newroot = new TreeNode(pRoot.val);
TreeNode ow;
TreeNode oy;
we.offer(pRoot);
you.offer(newroot);
while(true){
ow = we.poll();
oy = you.poll();
if(ow.left != null ){
we.offer(ow.left);
oy.right = new TreeNode(ow.left.val);
you.offer(oy.right);
}
if(ow.right != null ){
we.offer(ow.right);
oy.left = new TreeNode(ow.right.val);
you.offer(oy.left);
}
if(we.isEmpty()){
break;
}
}
return newroot;
}
}