难度:简单
请完成一个函数,输入一个二叉树,该函数输出它的镜像。
例如输入:
4
/ \
2 7
/ \ / \
1 3 6 9
镜像输出:
4
/ \
7 2
/ \ / \
9 6 3 1
示例 1:
输入:root = [4,2,7,1,3,6,9]
输出:[4,7,2,9,6,3,1]
解答:
利用树的层序遍历,每次循环交换树的两个左右节点
class Solution {
public TreeNode mirrorTree(TreeNode root) {
Queue<TreeNode> queue = new ArrayDeque<>();
if(root == null) return root;
queue.add(root);
TreeNode node = null;
TreeNode temp = null;
while(queue.size() != 0){
node = queue.remove();
if(node.right != null || node.left != null){
temp = node.right;
node.right = node.left;
node.left = temp;
}
if(node.left != null)
queue.add(node.left);
if(node.right != null)
queue.add(node.right);
}
return root;
}
}