剑指offer-python

面试题19:二叉树的镜像

2018-07-01  本文已影响0人  fighting_css

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


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
上一篇 下一篇

猜你喜欢

热点阅读