二叉树的镜像-剑指offer系列

Posted IT小磊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉树的镜像-剑指offer系列相关的知识,希望对你有一定的参考价值。

点击关注上方"IT小磊"

设为"星标或置顶"



题目描述

操作给定的二叉树,将其变换为源二叉树的镜像。

二叉树的镜像定义:
源二叉树:
            8
          /  \
         6   10
        / \    / \
       5  7 9  11
镜像二叉树:
           8
          /  \
         10   6
        / \    / \
      11 9 7  5

解题思路

处理根节点,将根节点的左右子节点进行交换,然后依次递归处理左右子节点。


代码示例

public class Offer19 {
    public static void main(String[] args) {
        //构建树
        TreeNode root = new TreeNode(1);
        root.left = new TreeNode(2);
        root.right = new TreeNode(3);
        //测试二叉树的镜像,使用先序遍历打印验证
        Offer19 testObj = new Offer19();
        testObj.preOrder(root);
        System.out.println();
        testObj.mirror(root);
        testObj.preOrder(root);
    }

    static class TreeNode {
        int val;
        TreeNode left;
        TreeNode right;
        TreeNode(int val) {
            this.val = val;
        }
    }
    //将二叉树进行镜像
    public void mirror(TreeNode root) {
        if (root == null)
            return;
        swap(root);
        mirror(root.left);
        mirror(root.right);
    }
    //交换当前节点的左右子树
    private void swap(TreeNode root) {
        TreeNode temp = root.left;
        root.left = root.right;
        root.right = temp;
    }
    //二叉树先序遍历
    private void preOrder(TreeNode root) {
        if (root == null)
            return;
        System.out.print(root.val + " ");
        preOrder(root.left);
        preOrder(root.right);
    }
}





欢迎关注我的公众号"IT小磊",如果喜欢,麻烦点一下" 在看"


IT小磊


以上是关于二叉树的镜像-剑指offer系列的主要内容,如果未能解决你的问题,请参考以下文章

二叉树的镜像-剑指Offer

剑指offer(三十四)之二叉树的镜像

剑指offer——二叉树的镜像

剑指offer--27二叉树的镜像

剑指offer-(16)二叉树的镜像

《剑指Offer——二叉树的镜像》代码