题目
- 请完成一个函数,输入一个二叉树,该函数输出它的镜像。
输入
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 {
private void swapBranch(TreeNode node){
TreeNode temp = node.left;
node.left = node.right;
node.right = temp;
}
public TreeNode mirrorTree(TreeNode root) {
if(root == null) return null;
swapBranch(root);
mirrorTree(root.left);
mirrorTree(root.right);
return root;
}
}
- 边交换边走
public TreeNode mirrorTree(TreeNode root) {
if (root == null)
return null;
TreeNode tmpNode = root.left;
root.left = mirrorTree(root.right);
root.right = mirrorTree(tmpNode);
return root;
}