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; } }