剑指offer(python)--题目18-二叉树镜像

题目描述
操作给定的二叉树,将其变换为源二叉树的镜像。
输入描述:
二叉树的镜像定义:源二叉树
(https://img-blog.csdnimg.cn/20190221215648202.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI0NDI5MzMz,size_16,color_FFFFFF,t_70)
思路:
将左子树和右子树交换
递归思想,先交换根节点的左右子树的位置,然后向下递归,把左右子树的根节点作为下次循环的根节点

class Solution:
    # 返回镜像树的根节点
    def Mirror(self, root):
        if root==None:
            return 
        if root.left==None and root.right==None:
            return 
        tmp=None  #这三步交换根节点的左右树,交换的树,而不单单是节点
        tmp=root.right
        root.right=root.left
        root.left=tmp
        if root.left is not None:
            self.Mirror(root.left)
        if root.right is not None:
            self.Mirror(root.right)

猜你喜欢

转载自blog.csdn.net/qq_24429333/article/details/87869476