操作给定的二叉树,将其变换为源二叉树的镜像。
输入描述:
二叉树的镜像定义:源二叉树
8
/ \
6 10
/ \ / \
5 7 9 11
镜像二叉树
8
/ \
10 6
/ \ / \
11 9 7 5
分析
如果知道一个根节点的左孩子指针和右孩子指针,那么改变根节点的指向就可以解决问题。
交换左右子树的节点,然后递归调用该方法即可。
二叉树的简单定义
public class TreeNode{
int val = 0;//根节点
TreeNode left = null;//左子树;
TreeNode right = null;//右子树;
public TreeNode(val){//构造函数;
this.val = val;
}
}
镜像函数
public class Solution{
public void Mirror(root){
Mirror temp = root.left;//定义变量temp,将左子树赋值给temp;
root.left = root.right;//将右子树节点放到左子树;
root.right = temp;//将之前的左子树节点放到右子树;
Mirror(root.left);
Mirrot(root.right);//分别对左右节点递归调用函数;
}
}