题目
操作给定的二叉树,将其变换为源二叉树的镜像。
解题思路
递归
- 判断是否为空;
- 不为空交换左右子树;
- 左子树调用;
- 右子树调用。
两种写法:
# -*- coding:utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
# 返回镜像树的根节点
def Mirror(self, root):
# write code here
if root is None:
return root
if root:
root.right, root.left = root.left, root.right
return self.Mirror(root.left) or self.Mirror(root.right) ## 这里是or
第二种:
# -*- coding:utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
# 返回镜像树的根节点
def Mirror(self, root):
# write code here
if root is None:
return root
if root:
root.right, root.left = root.left, root.right
self.Mirror(root.left)
self.Mirror(root.right)
return root #self.Mirror(root.left) and self.Mirror(root.right)