递归,将左子树右子树进行交换,然后再去递归翻转左右子树
class Solution:
def Mirror(self , pRoot ):
# write code here
if pRoot==None:
return
pRoot.left,pRoot.right=pRoot.right,pRoot.left
self.Mirror(pRoot.left)
self.Mirror(pRoot.right)
return pRootBFS的方法
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param pRoot TreeNode类
# @return TreeNode类
#
import collections
class Solution:
def Mirror(self , pRoot ):
# write code here
queue=collections.deque()
if pRoot==None:
return None
queue.append(pRoot)
while queue:
size=len(queue)
for i in range(size):
root=queue.popleft()
root.left,root.right=root.right,root.left
if root.left:
queue.append(root.left)
if root.right:
queue.append(root.right)
return pRoot

京公网安备 11010502036488号