问题:操作给定的二叉树,将其变换为源二叉树的镜像。

解法:看见二叉树,优先想到递归,需要考虑的是递归的终止条件。常规操作,先对根节点进行操作,再对左子树,最后是右子树

 1 # -*- coding:utf-8 -*-
 2 # class TreeNode:
 3 #     def __init__(self, x):
 4 #         self.val = x
 5 #         self.left = None
 6 #         self.right = None
 7 class Solution:
 8     # 返回镜像树的根节点
 9     def Mirror(self, root):
10         # write code here
11         # 第一步:考虑边界条件
12         if root == None:    #递归结束条件
13             return None
14         # 处理根节点:
15         root.left, root.right = root.right, root.left
16         #处理左子树
17         self.Mirror(root.left)
18         #处理右子树
19         self.Mirror(root.right)