#递归 每个子二叉树都要交换
class Solution:
def mirrorTree(self, root: TreeNode) -> TreeNode:
if not root: return
root.left,root.right=self.mirrorTree(root.right),self.mirrorTree(root.left)#递归 交换左右子节点
return root
#遍历树的所有节点node ,并交换每个node的左 / 右子节点。
#在原树上做修改 返回根节点即可
class Solution:
def mirrorTree(self, root: TreeNode) -> TreeNode:
if not root: return
queue = collections.deque()
queue.append(root)#[1]
while queue:
node=queue.popleft()
#每个node都要修改,交换1的左右子节点[2,3]
node.right,node.left=node.left,node.right#python特有 交换变量值
if node.left:
queue.append(node.left)#[3]
if node.right:
queue.append(node.right)#[3,2]
return root