剑指offer面试题19----二叉树的镜像
2019-10-30 本文已影响0人
minningl
题目:操作给定的二叉树,将其变换为源二叉树的镜像。
输入描述:
二叉树的镜像定义:源二叉树
8
/
6 10
/ \ /
5 7 9 11
镜像二叉树
8
/
10 6
/ \ /
11 9 7 5
思路:二叉树的镜像就是要对左右进行颠倒,简化为两个数据的镜像的话就是对这两个数据进行交换位置,交换位置的操作就是先定义一个temp变量,然后对其中的一个进行赋值,再用temp对另一个进行赋值。回到二叉树镜像这里,就是多了一个递归操作,我们对树的子树进行递归调用,其他逻辑保持不变
Python代码如下:
# -*- coding:utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
# 返回镜像树的根节点
def Mirror(self, root):
if not root:
return None
temp = root.left
root.left = self.Mirror(root.right)
root.right = self.Mirror(temp)
return root