二叉树的镜像定义:源二叉树
8
/
6 10
/ \ /
5 7 9 11
镜像二叉树
8
/
10 6
/ \ /
11 9 7 5
思路:1、交换根节点的左右子树
2、遍历二叉树,只要节点有子节点,就交换两个子节点
3、使用递归交换完所有非叶子节点后,即可得到原二叉树的镜像
# -*- coding:utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
# 返回镜像树的根节点
def swap(self , root):
temp=root.left
root.left=root.right
root.right=temp
def Mirror(self, root):
# write code here
if root==None:
return root
else:
self.swap(root)
self.Mirror(root.left)
self.Mirror(root.right)
return root