树的镜像

题目链接-来源:力扣(LeetCode)

请完成一个函数,输入一个二叉树,该函数输出它的镜像。

例如输入:

     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]

思路:

遍历树的各节点,每次将两棵子树交换即可。
时间复杂度:O(n)
空间复杂度:O(n)

实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
public TreeNode mirrorTree(TreeNode root) {
if (root == null) {
return null;
}

root.left = mirrorTree(root.left);
root.right = mirrorTree(root.right);


TreeNode temp = root.left;
root.left = root.right;
root.right = temp;

return root;
}
}