面试题19:二叉树的镜像

题目描述:
操作给定的二叉树,将其变换为源二叉树的镜像
思路:


image.png

如上图:
交换根结点的左右子树;
再递归对左子树进行交换;
对右子树进行交换。
最后输出该树。
【边界】
若树为空,或树只有根结点则无需交换,直接返回。
代码:

# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
class Solution:
    def Mirror(self, root):
        # write code here
        if root==None:
            return root
        if root.left==None and root.right==None:
            return root
        #交换左右子树
        temp_root = root.left
        root.left = root.right
        root.right = temp_root
        #递归对左子树进行交换
        root.left = self.Mirror(root.left)
        #递归对右子树进行交换
        root.right = self.Mirror(root.right)
        return root
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 题目描述 操作给定的二叉树,将其变换为源二叉树的镜像。 代码实现 主要思路 很简单的递归题,三步走:(1)特殊输入...
    _minimal阅读 144评论 0 0
  • 题目:请完成一个函数,输入一个二叉树,该函数输出它的镜像。 思路:先前序遍历这个树的每个节点,如果遍历到的节点有子...
    Felicia1993阅读 209评论 0 0
  • 题目:请完成一个函数,输入一个二叉树,输出它的镜像 解法:
    qmss阅读 134评论 0 1
  • 一些概念 数据结构就是研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,而且确保经过这...
    Winterfell_Z阅读 5,994评论 0 13
  • 2016.12.31 一、会照顾人 今天周六,恰逢元旦,上午带着宝贝跟同学家的闺女佳佳玩,两个人在游乐场玩的不亦...
    匆匆十年阅读 165评论 0 1