题目描述
请完成一个函数,输入一颗二叉树,该函数输出它的镜像。
翻转二叉树后便得到二叉树的镜像。
递归
class Solution(object):
def invertTree(self, root):
"""
:type root: TreeNode
:rtype: TreeNode
"""
if not root: return root
# 左子树与右子树交换
root.left, root.right = self.invertTree(root.right), self.invertTree(root.left)
return root
循环
class Solution:
def invertTree(self, root: TreeNode) -> TreeNode:
if not root: return None
queue = [root]
while queue:
for i in range(len(queue)):
temp = queue.pop(0)
if temp.left:
queue.append(temp.left)
if temp.right:
queue.append(temp.right)
if temp.left or temp.right:
temp.left,temp.right = temp.right,temp.left
return root
2019.8.21 补充循环解法