1. 二叉树的镜像
输入一个二叉树,输出它的镜像。
方法一:
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def mirrorTree(root):
if not root:
return None
temp, left, right = root.right, root.left, root.right
root.left = mirrorTree(right)
root.right = mirrorTree(temp)
return root
方法二:
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def mirrorTree(root):
if not root:
return None
stack = [root]
while stack:
node = stack.pop()
if node.left:
stack.append(node.left)
if node.right:
stack.append(node.right)
temp = node.left
node.left = node.right
node.right = temp
return root