题目描述

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

思路

《剑指offer》P125
将当前结点视为根结点,交换左右子树,递归地再对左右子树进行操作。

注意判断以下两种情况:

  • 空树
  • 左右子树都为空

code

递归解法

# -*- coding:utf-8 -*-
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
class Solution:# 返回镜像树的根节点def Mirror(self, root):# write code hereif not root:returnif not root.left and not root.right:return # 交换左右子树tmpNode = root.leftroot.left = root.rightroot.right = tmpNode# 递归交换左右子树的子树self.Mirror(root.left)self.Mirror(root.right)

非递归解法

  • 层次遍历二叉树,将结点保存进队列中
  • 结点依次出队,如果有孩子,则交换左右孩子
# -*- coding:utf-8 -*-
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
class Solution:# 返回镜像树的根节点def Mirror(self, root):# write code hereif not root:returnif not root.left and not root.right:return # 非递归解法# 层次遍历二叉树,将结点保存进队列中# 结点依次出队,如果有孩子,则交换左右孩子nodeQueue = [root]while nodeQueue:node = nodeQueue.pop(0)# 将左右孩子放入队列if node.left:nodeQueue.append(node.left)if node.right:nodeQueue.append(node.right)# 交换左右孩子tmp = node.leftnode.left = node.rightnode.right = tmpreturn root

【剑指offer】19. 二叉树的镜像相关推荐

  1. 《LeetCode力扣练习》剑指 Offer 27. 二叉树的镜像 Java

    <LeetCode力扣练习>剑指 Offer 27. 二叉树的镜像 Java 一.资源 题目: 请完成一个函数,输入一个二叉树,该函数输出它的镜像. 例如输入: 4 / 2 7 / \ / ...

  2. 【LeetCode】剑指 Offer 27. 二叉树的镜像

    [LeetCode]剑指 Offer 27. 二叉树的镜像 文章目录 [LeetCode]剑指 Offer 27. 二叉树的镜像 一.递归法 二.辅助栈(或队列) 一.递归法 根据二叉树镜像的定义,考 ...

  3. 算法leetcode|剑指 Offer 27. 二叉树的镜像|226. 翻转二叉树(rust很强)

    文章目录 剑指 Offer 27. 二叉树的镜像|226. 翻转二叉树: 样例 1: 限制: 分析 题解 rust go c++ java python 原题传送门:https://leetcode. ...

  4. JZ27 [剑指 Offer 27] 二叉树的镜像

    二叉树的镜像 Category Difficulty Likes Dislikes lcof Easy (79.61%) 311 - 请完成一个函数,输入一个二叉树,该函数输出它的镜像. 例如输入: ...

  5. 【Java】 剑指offer(27) 二叉树的镜像

    本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 请完成一个函数,输入一个二叉树,该函数输出它的镜像. 思路 画图可 ...

  6. 剑指offer 27. 二叉树的镜像

    声明:本系列博客是对何海涛<剑指offer>的关键点总结. 1.树的镜像 定义:树的根结点相同,但是左右两个子节点交换了位置 2.解题思路 1)前序遍历树的每一个结点: 2)如果遍历到的节 ...

  7. 《剑指Offer》 二叉树的镜像

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

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

    题目: 操作给定的二叉树,将其变换为源二叉树的镜像. 知识点: 无 注意: 无 代码实现: 遍历所有节点,交换当前节点的左右子节点,递归至叶子节点 /*二叉树镜像*/ void mirror(Bina ...

  9. 剑指Offer 27—二叉树的镜像

    题意 请完成一个函数,输入一个二叉树,该函数输出它的镜像. 力扣 法1-递归 二叉树镜像定义: 对于二叉树中任意节点 root ,设其左 / 右子节点分别为 left, right:则在二叉树的镜像中 ...

  10. 剑指 Offer 27. 二叉树的镜像【无取巧解法,易于理解!】

    看题解时,很多大牛用很少的代码就完成了AC,但可能看了很多遍也看不懂,因此萌生了写一种最"笨"最完整的代码的想法,这样大家可以通过我的代码入门,看懂了再去挑战大牛们的简洁解法. 请 ...

最新文章

  1. 在.NET环境下发送邮件
  2. Drectx 3D窗口后台截图
  3. Oracle-index索引解读
  4. 安卓之上传文件,即HTTP提交表单
  5. read configuration - shared object - read_comp_configuration_raw
  6. vue 时间戳 格式转化(插件化) - 封装篇
  7. 随想录(git操作)
  8. 比特币市值目前是白银68%
  9. RHCE考试第一天之学习安排计划
  10. 夏普电视出现android不动了,夏普电视常见故障问题分析与处理,电视机故障判断检修...
  11. 使用J-Link打印日志——SEGGER Real-Time Transfer(RTT)工具的移植使用
  12. 爬取某类网站并生成csv文件(人民邮电出版社书籍信息)
  13. X射线检测系统技术行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  14. 技嘉主板+AMD CPU开启CPU虚拟化方法
  15. 轻松绘制图像图形!且看Aspose新产品GDI +图形处理API-Aspose.Drawing如何操作!
  16. TMS运输系统价格昂贵?中小物流运输企业数字化,原来可以这么做。
  17. 异构计算-1-10x10:一种异质性和提高能量效率的通用架构方法
  18. (完美解决)App点击Home键后,再次点击APP图标,APP重启回不到点击home键前的那个界面
  19. 2020第五届上海第二工业大学新生程序设计竞赛(Java题解)
  20. 华为p10有java功能吗_华为P10最强悍的特色功能 很多人都不知道

热门文章

  1. html设置div大小位置不变,div大小 div固定大小设置
  2. 【角度刁钻】如果把线程当作一个人来对待,秒懂
  3. 神经网络 mse一直不变_自动扩增:从数据中学习扩增策略|扩增|top|算法|神经网络|样本...
  4. 对计算机科学的总体认识,浅谈对计算机科学与技术的认识
  5. Snagit 2021 for mac(屏幕截图工具)
  6. 配合Eclipse MAT工具排查服务器内存溢出问题
  7. 剑盾神秘礼物正在维护服务器,宝可梦剑盾神秘礼物获取途径一览
  8. 大合集!近两年目标跟踪资源全汇总(论文、模型代码、优秀实验室)
  9. 使用脚本自制 SSL 域名证书
  10. 计算机无法连接苹果手机软件,iphone连不上itunes