面试题19:二叉树的镜像
2018-07-01 本文已影响0人
fighting_css
题目描述:
操作给定的二叉树,将其变换为源二叉树的镜像
思路:
image.png
如上图:
交换根结点的左右子树;
再递归对左子树进行交换;
对右子树进行交换。
最后输出该树。
【边界】
若树为空,或树只有根结点则无需交换,直接返回。
代码:
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def Mirror(self, root):
# write code here
if root==None:
return root
if root.left==None and root.right==None:
return root
#交换左右子树
temp_root = root.left
root.left = root.right
root.right = temp_root
#递归对左子树进行交换
root.left = self.Mirror(root.left)
#递归对右子树进行交换
root.right = self.Mirror(root.right)
return root