题目描述
操作给定的二叉树,将其变换为源二叉树的镜像。
输入描述:
二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5
时间限制:1秒 空间限制:32768K 热度指数:73052
思路
二叉树的镜像的过程:先遍历二叉树的所有节点,如果遍历到的节点有子节点,就交换它的子节点。
当交换完所有非叶结点的左、右子节点后,就得到了树的镜像。
这一过程存在一些一样的操作,所以可以用递归来实现。
参考代码
# -*- coding:utf-8 -*-
# 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 not root:
return None
if root.left:
root.left = self.Mirror(root.left)
if root.right:
root.right = self.Mirror(root.right)
root.left, root.right = root.right, root.left
return root