首页 > 试题广场 >

二叉树的镜像

[编程题]二叉树的镜像
  • 热度指数:133762 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
作给定的二叉树,将其变换为源二叉树的镜像。
数据范围:二叉树的节点数 , 二叉树每个节点的值
要求: 空间复杂度 。本题也有原地操作,即空间复杂度 的解法,时间复杂度

比如:
源二叉树
镜像二叉树

示例1

输入

{8,6,10,5,7,9,11}

输出

{8,10,6,11,9,7,5}

说明

如题面所示    
示例2

输入

{}

输出

{}

说明:本题目包含复杂数据结构TreeNode,点此查看相关信息
class Solution:
    def Mirror(self , pRoot ):
        if pRoot is None :
            return None
        left=pRoot.left
        pRoot.left=pRoot.right
        pRoot.right=left
        self.Mirror(pRoot.right)
        self.Mirror(pRoot.left)
        return pRoot
发表于 2021-10-19 14:41:26 回复(0)
递归
class Solution:
    def Mirror(self , pRoot ):
        if pRoot == None:
            return None
        pRoot.left, pRoot.right = pRoot.right, pRoot.left
        pRoot.left = self.Mirror(pRoot.left)
        pRoot.right = self.Mirror(pRoot.right)
        return pRoot


发表于 2021-03-01 14:42:42 回复(1)