(题目描述和图片来自牛客网)
题目描述:
操作给定的二叉树,将其变换为源二叉树的镜像。
python代码:
# -*- coding:utf-8 -*-
# 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 not root:
return None
left = root.left
right = root.right
root.right = self.Mirror(left)
root.left = self.Mirror(right)
return root
解析:
镜像的意思就是每个节点的左右子树互换位置
递归调用root,设置root的右子树等于左子树的结构,左子树等于右子树的结构,返回root.这样从叶子节点开始回溯,就可以获得镜像树了。
因为是左右两个子树的循环,因此不适合用while语句。