题目描述
请完成一个函数,输入一颗二叉树,请函数输出它的镜像。二叉树节点的定义如下:
public class BinaryTreeNode {
double value;
BinaryTreeNode left;
BinaryTreeNode right;
}
剑指 Offer 27. 二叉树的镜像
难度简单118
请完成一个函数,输入一个二叉树,该函数输出它的镜像。
例如输入:
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) {
if(root==null)
return root;
TreeNode tmp = root.left;
root.left = mirrorTree(root.right);
root.right = mirrorTree(tmp);
return root;
}
}
补充
思路比代码更重要,所以在写代码之前一定要先想请思路。