题目描述
请完成一个函数,输入一颗二叉树,该函数输出它的镜像。
二叉树的镜像定义:源二叉树
8
/
6 10
/ /
5 7 9 11
镜像二叉树
8
/
10 6
/ /
11 9 7 5
思路分析
利用递归的思想:前序遍历二叉树,递归的交换左右子树。
测试用例
【效率太低,还是通过牛客网测试吧】
- 功能测试:普通的二叉树;二叉树的所有节点都没有左子树或者右子树;只有一个节点的二叉树。
- 特殊输入测试:二叉树的根节点为nullptr指针。
Java代码
public class Offer27 {
public static void main(String[] args) {
System.out.println("测试太麻烦了以后再弄吧");
System.out.println("效率太低,还是通过牛客网测试吧");
test1();
test2();
test3();
}
public void Mirror(TreeNode root) {
Solution1(root);
}
private static void Solution1(TreeNode root) {
if(root==null) return ;
if(root.left==null && root.right==null) {
return ;
}
TreeNode tmp = root.left;
root.left = root.right;
root.right = tmp;
if(root.left!=null) {
Solution1(root.left);
}
if(root.right!=null) {
Solution1(root.right);
}
}
private static void test1() {
}
private static void test2() {
}
private static void test3() {
}
}