二叉树的镜像(二叉树的对称性)

来源:互联网 发布:进程调度算法代码 编辑:程序博客网 时间:2024/05/26 07:27

题目描述

操作给定的二叉树,将其变换为源二叉树的镜像。 
输入描述:
二叉树的镜像定义:源二叉树         8       /  \      6   10     / \  / \    5  7 9 11    镜像二叉树        8       /  \      10   6     / \  / \    11 9 7  5


二叉树的对称性,运用递归,左孩子赋值给镜像二叉树的右孩子,同理,右孩子赋值给镜像二叉树的左孩子
# -*- coding:utf-8 -*-# class TreeNode:#     def __init__(self, x):#         self.val = x#         self.left = None#         self.right = Noneclass Solution:    # 返回镜像树的根节点    def Mirror(self, root):        # write code here        if not root:        return root        elif not root.left and root.right:        # 注意以下几个if语句中left和right放的位置,不要让本次的赋值对接下来的计算产生影响        root.left = self.Mirror(root.right)        root.right = None        return root        elif root.left and not root.right:        root.right = self.Mirror(root.left)        root.left = None        return root        else:        temp = self.Mirror(root.right)        root.right = self.Mirror(root.left)        root.left = temp        return root




0 0
原创粉丝点击