二叉树的镜像
二叉树的镜像:所谓镜像就是从树中间劈开后,两半一样,这就是镜像二叉树
代码实现的时候:从上面的最大的节点向下开始,先交换root下面的两个大的左右子树,大体位置交换之后,在递归交换每一个小的子树,直到交换叶子节点,就完成了
看完后可以感受一下一篇:对称的二叉树
代码:
在交换两个节点,采用就是交换两个变量的值那样交换,通过中间变量来交换
/**
* 二叉树的镜像
*/
public class Main {
public void MirrorRecursively(TreeNode root){
if(root==null){
return ;
}
TreeNode tmp=root.left;
root.left=root.right;
root.right=tmp;
MirrorRecursively(root.left);
MirrorRecursively(root.right);
}
}
class TreeNode{
int data;
TreeNode left;
TreeNode right;
TreeNode(int data){
this.data=data;
this.left=null;
this.right=null;
}
}