#coding:utf-8
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param pRoot TreeNode类
# @return TreeNode类
#
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution:
def Mirror(self , pRoot ):
# write code here
pRoot2 = pRoot
path1 = []
path2 = []
#self.dfs(pRoot)
self.bfs(pRoot)
return pRoot
def dfs(self, node):
if node == None:
return node
left = self.dfs(node.left)
right = self.dfs(node.right)
node.left = right
node.right = left
return node
def bfs(self, node):
if node == None:
return node
stack = []
stack.append(node)
while len(stack) > 0:
cur_node = stack.pop()
if cur_node.left != None:
stack.append(cur_node.left)
if cur_node.right != None:
stack.append(cur_node.right)
//交换左右
tmp = cur_node.left
cur_node.left = cur_node.right
cur_node.right = tmp
return node