剑指offer---18---(递归)(先序遍历)二叉树的镜像
题意
操作给定的二叉树,将其变换为源二叉树的镜像。
分析
-----使用先序遍历的方式,先将两个子树交换位置,然后递归两个子树
交换两个子树的时候,因为子树的子树是连接在子树下面的,也就是说是相对固定不动的,交换的时候就会跟着交换。
代码
public class Solution {
public void Mirror(TreeNode root) {
if(root==null)return;
if(root.left==null && root.right==null)return;
//先序交换两个子树
TreeNode temp = root.left;
root.left = root.right;
root.right = temp;
//如果两个子树不为空的话继续进行递归处理
if(root.left!=null)Mirror(root.left);
if(root.right!=null)Mirror(root.right);
}
}