问题:操作给定的二叉树,将其变换为源二叉树的镜像。
解法:看见二叉树,优先想到递归,需要考虑的是递归的终止条件。常规操作,先对根节点进行操作,再对左子树,最后是右子树
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)