美文网首页剑指offer-python
面试题19:二叉树的镜像

面试题19:二叉树的镜像

作者: fighting_css | 来源:发表于2018-07-01 10:27 被阅读0次

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


    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
    

    相关文章

      网友评论

        本文标题:面试题19:二叉树的镜像

        本文链接:https://www.haomeiwen.com/subject/dbjcuftx.html