zoukankan      html  css  js  c++  java
  • 剑指offer:面试题19、二叉树的镜像

    题目描述

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

    二叉树的镜像定义:
    源二叉树
    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);
        }
    }
    
  • 相关阅读:
    poj 1026 Cipher
    python中的global
    基于DL的文本分类综述
    K近邻算法学习
    聚类评价指标学习
    pytorch自动求导学习
    反向传播的推导
    二分搜索常用【转载】
    《Attention is all you need》论文学习
    5-28日|5-30日
  • 原文地址:https://www.cnblogs.com/ITxiaolei/p/13167003.html
Copyright © 2011-2022 走看看