剑指Offer——二叉树的镜像。

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);
            }
        }
    }
}

  

posted @ 2019-07-12 15:11  包子的百草园  阅读(123)  评论(0编辑  收藏  举报