本文参考自《剑指offer》一书,代码采用Java语言。

更多:《剑指Offer》Java实现合集  

题目 

  请完成一个函数,输入一个二叉树,该函数输出它的镜像。

思路

  画图可以很清晰地得到思路:先前序遍历,对每个结点交换左右子结点。

测试算例 

  1.功能测试(普通二叉树;左斜树;右斜树;一个结点)

  2.特殊测试(根结点为null;)

Java代码

//题目:请完成一个函数,输入一个二叉树,该函数输出它的镜像。

public class MirrorOfBinaryTree {
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
} public void Mirror(TreeNode root) {
if(root==null)
return;
//左右子结点交换
TreeNode tempNode = root.left;
root.left=root.right;
root.right=tempNode; Mirror(root.left);
Mirror(root.right);
}
}

   

收获

  画图使抽象问题形象化,面试时要在编程前先用画图、举例子等来解释思路。

  

更多:《剑指Offer》Java实现合集  

  

【Java】 剑指offer(27) 二叉树的镜像的更多相关文章

  1. 力扣 - 剑指 Offer 27. 二叉树的镜像

    题目 剑指 Offer 27. 二叉树的镜像 思路1(递归) 我们可以使用深度优先搜索,先递归到链表的末尾,然后从末尾开始两两交换.就相当于后续遍历而已 记得要先保存下来node.right节点,因为 ...

  2. 剑指offer——27二叉树的镜像

    题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ ...

  3. 剑指 Offer 27. 二叉树的镜像

    同LeetCode226翻转二叉树 1 class Solution { 2 public: 3 TreeNode* mirrorTree(TreeNode* root) { 4 if(root == ...

  4. 《剑指offer》 二叉树的镜像

    本题来自<剑指offer>二叉树的镜像 题目: 操作给定的二叉树,将其变换为源二叉树的镜像. 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 ...

  5. 【剑指Offer】二叉树的镜像 解题报告(Python)

    [剑指Offer]二叉树的镜像 解题报告(Python) 标签(空格分隔): LeetCode 题目地址:https://www.nowcoder.com/ta/coding-interviews 题 ...

  6. Go语言实现:【剑指offer】二叉树的镜像

    该题目来源于牛客网<剑指offer>专题. 操作给定的二叉树,将其变换为源二叉树的镜像. 示例: 输入: 4 / 2 7 / \ / 1 3 6 9 输出: 4 / 7 2 / \ / 9 ...

  7. 剑指Offer 18. 二叉树的镜像 (二叉树)

    题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ ...

  8. 剑指offer:二叉树的镜像

    题目描述: 操作给定的二叉树,将其变换为源二叉树的镜像. 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / ...

  9. 【剑指offer】二叉树的镜像,C++实现(先序遍历)

    原创博文,转载请注明出处!github地址  博客文章索引地址 1.题目       输入一颗二叉树,将二叉树变换为原二叉树的镜像,如下图所示: 2.思路 二叉树有0个节点 二叉树有1个节点 二叉树有 ...

随机推荐

  1. socket 聊天室

    服务端: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; ...

  2. kubernetes 集群

    一.CentOS 7 基础环境准备 centos 默认服务目录 /usr/lib/systemd/system systemctl服务开机启动链接存贮目录: /etc/systemd/system/b ...

  3. luogu P3760 [TJOI2017]异或和

    传送门 对于每个二进制位考虑有多少区间和这一位上为1 从前往后扫每个前缀和,如果当前这个前缀和某一个二进制位上为1,因为区间和由这个前缀和减去前面的前缀和得来,如果减去了这一位为0的前缀和,那么 减去 ...

  4. [HAOI2018]奇怪的背包 (DP,数论)

    [HAOI2018]奇怪的背包 \(solution:\) 首先,这一道题目的描述很像完全背包,但它所说的背包总重量是在模P意义下的,所以肯定会用到数论.我们先分析一下,每一个物品可以放无数次,可以达 ...

  5. Android ROM资源文件存放位置

    位于目录:framework/core/res/res /frameworks/base/core/res/res/values/public.xml 上面的文件中公开了上层(也就是第三方应用或者系统 ...

  6. Linux的7个运行级别

    0:关机 1:单用户(找回丢失密码)此模式下所有用户不需要密码即可登录,可用于重置密码 2:多用户状态没有网络服务 3:多用户状态有网络服务 ★ 4:系统未使用保留给用户 5:图形界面 ★ 6:系统重 ...

  7. Linux内核驱动--mmap设备方法【原创】

    mmap系统调用(功能) void *mmap(void *addr, size_t len, int prot, int flags, int fd, off_t offset) 内存映射函数mma ...

  8. Pcap4J实现抓包器

    前段时间搞抓包程序,打算使用Pcap4J实现,发现除了GitHub,其它资料少之又少,几乎都是不起作用. 被迫我一直看(日本作者!)英文注解的源码和sample和test,比较费劲+营养很少.因为几乎 ...

  9. java中printf()方法简单用法

    %n 换行 相当于 \n %c 单个字符 %d 十进制整数 %u 无符号十进制数 %f 十进制浮点数 %o 八进制数 %x 十六进制数 %s 字符串 %% 输出百分号 > 在printf()方法 ...

  10. centos6.5/centos7安装部署企业内部知识管理社区系统wecenter

    企业内部知识系统wecenter社区系统安装及部署 centos 6.5环境安装 因为是公司内部使用在线人数不会太多,使用yum安装lamp环境即可 1.安装lamp基本环境 yum -y insta ...