題目:操作給定的二叉樹,將其變換為源二叉樹的鏡像。
輸入描述:
二叉樹的鏡像定義:源二叉樹
8
/
6 10
/ \ /
5 7 9 11
鏡像二叉樹
8
/
10 6
/ \ /
11 9 7 5
思路:二叉樹的鏡像就是要對左右進(jìn)行顛倒,簡化為兩個(gè)數(shù)據(jù)的鏡像的話就是對這兩個(gè)數(shù)據(jù)進(jìn)行交換位置,交換位置的操作就是先定義一個(gè)temp變量,然后對其中的一個(gè)進(jìn)行賦值,再用temp對另一個(gè)進(jìn)行賦值。回到二叉樹鏡像這里,就是多了一個(gè)遞歸操作,我們對樹的子樹進(jìn)行遞歸調(diào)用,其他邏輯保持不變
Python代碼如下:
# -*- coding:utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
# 返回鏡像樹的根節(jié)點(diǎn)
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