题目
方法一:递归
class Solution(object):
def mirrorTree(self, root):
"""
:type root: TreeNode
:rtype: TreeNode
"""
if not root:
return
tmp = self.mirrorTree(root.left)
root.left = self.mirrorTree(root.right)
root.right = tmp
return root
方法二:用栈模拟
class Solution:
def mirrorTree(self, root: TreeNode) -> TreeNode:
if not root:
return None
stack = [root]
while stack:
node = stack.pop()
if node.right:
stack.append(node.right)
if node.left:
stack.append(node.left)
node.right,node.left = node.left,node.right
return root