请完成一个函数,输入一个二叉树,该函数输出它的镜像。
剑指 Offer 27. 二叉树的镜像 - 力扣(LeetCode) (leetcode-cn.com)
//递归交换
class Solution {
public TreeNode mirrorTree(TreeNode root) {
if(root == null){
return null;
}
TreeNode temp = root.left;
root.left = mirrorTree(root.right);
root.right = mirrorTree(temp);
return root;
}
}
//迭代实现,按前序遍历的顺序把节点加入队列,并每次取出一个交换左右子树
class Solution {
public TreeNode mirrorTree(TreeNode root) {
if(root == null){
return null;
}
LinkedList<TreeNode> list = new LinkedList();
list.addLast(root);
while(list.size() != 0){
TreeNode temp = list.removeFirst();
if(temp.left != null){
list.addLast(temp.left);
}
if(temp.right != null){
list.addLast(temp.right);
}
TreeNode t = temp.left;
temp.left = temp.right;
temp.right = t;
}
return root;
}
}