题目
操作给定的二叉树,将其变换为源二叉树的镜像。
二叉树的镜像定义:源二叉树
8
/ \
6 10
/ \ / \
5 7 9 11
镜像二叉树
8
/ \
10 6
/ \ / \
11 9 7 5
思路:
题可知,涉及到二叉树的遍历,第一反应就是递归遍历二叉树,并且遍历顺序是从上到下,从左到右。
当遍历到某个节点时,只需要将该节点的左右两个子节点交换即可
def TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
def Mirror(root):
if not root: # 如果遍历到树底,则返回
return root
Mirror(root.left) # 镜像化左子树的左右子节点
Mirror(root.right) # 镜像化右子树的左右子节点
return root