码迷,mamicode.com
首页 > 其他好文 > 详细

剑指offer:面试题19、二叉树的镜像

时间:2020-06-20 01:01:41      阅读:58      评论:0      收藏:0      [点我收藏+]

标签:node   val   使用   wap   代码   rgs   treenode   string   操作   

题目描述

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

二叉树的镜像定义:
源二叉树
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);
    }
}

剑指offer:面试题19、二叉树的镜像

标签:node   val   使用   wap   代码   rgs   treenode   string   操作   

原文地址:https://www.cnblogs.com/ITxiaolei/p/13167003.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!