二叉树的镜像

描述 操作给定的二叉树,将其变换为源二叉树的镜像。 数据范围:二叉树的节点数 0≤n≤1000 , 二叉树每个节点的值 0≤val≤1000 要求: 空间复杂度 O(n) 。本题也有原地操作,即空间复杂度 O(1) 的解法,时间复杂度 O(n)

思路:题目很简单,就左右子树交换,然后左右子树的左右子树也交换,即递归左右子树交换,非常简单

# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param pRoot TreeNode类 
# @return TreeNode类
#
class Solution:
    def Mirror(self , pRoot: TreeNode) -> TreeNode:
        # write code here
        if pRoot == None:
            return pRoot
        value = pRoot.left
        pRoot.left = pRoot.right
        pRoot.right = value
        self.Mirror(pRoot.left)
        self.Mirror(pRoot.right)
        return pRoot