题目描述
问题解析
本体使用队列来做,队列的目的就是存储原始序列顺序的二叉树
首先判断根节点是否为空
然后新建子队列
队列压入根节点
使用while(循环)
弹出队列元素
分别压入左右节点
交换左右节点
返回初始结点
代码实例
class Solution {
public TreeNode mirrorTree(TreeNode pRoot) {
if(pRoot == null){
return null;
}
Queue<TreeNode> que = new LinkedList<>();
que.offer(pRoot);
while(!que.isEmpty()){
TreeNode temp = que.poll();
if(temp.left != null){
que.offer(temp.left);
}
if(temp.right != null){
que.offer(temp.right);
}
TreeNode tem = temp.left;
temp.left = temp.right;
temp.right = tem;
}
return pRoot;
}
}