import java.util.*;
public class Solution {
// 使用BFS,层次自上而下每次交换左右子树
public TreeNode Mirror (TreeNode pRoot) {
// write code here
if(pRoot == null) return null;
Queue<TreeNode> queue = new LinkedList<>();
queue.add(pRoot);
while(!queue.isEmpty()){
TreeNode node = queue.poll();
// 先将当前结点的正常顺序的左右子树加入队列,之后当前节点的作用就没有了,可以交换原左右子树的位置了
if(node.left != null){
queue.add(node.left);
}
if(node.right != null){
queue.add(node.right);
}
TreeNode left = node.left;
node.left = node.right;
node.right = left;
}
return pRoot;
}
}