class Solution:
def invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]:
if not root: return None
queue = deque([root])
while queue:
for _ in range(len(queue)):
cur = queue.popleft()
# 关键一步
cur.left, cur.right = cur.right, cur.left
if cur.left: queue.append(cur.left)
if cur.right: queue.append(cur.right)
return root
迭代层序遍历思路:
1.注意这是层序遍历;(也可用前序和后续遍历)
2.除了# 关键一步
cur.left, cur.right = cur.right, cur.left
其它与迭代层序遍历一样