1、题目描述
操作给定的二叉树,将其变换为源二叉树的镜像。
2、代码实现
package com.baozi.offer;
/**
* 二叉树的镜像定义:源二叉树
* 8
* / * 6 10
* / \ / * 5 7 9 11
* 镜像二叉树
* 8
* / * 10 6
* / \ / * 11 9 7 5
*
* @author BaoZi
* @create 2019-07-12-15:00
*/
public class Offer15 {
public void Mirror(TreeNode root) {
//其实这个就是递归的交换每一个子树的左右节点
if (root != null) {
//1、先交换当前根节点的左右子节点的值
TreeNode temp = root.left;
root.left = root.right;
root.right = temp;
if (root.left != null) {
//2、然后再交换当前节点的左子树的值
Mirror(root.left);
}
//3、然后再交换当前节点的右子树的值
if (root.right != null) {
Mirror(root.right);
}
}
}
}
原文:https://www.cnblogs.com/BaoZiY/p/11176197.html