python代码实现二叉树的镜像树
Posted Data+Science+Insight
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python代码实现二叉树的镜像树相关的知识,希望对你有一定的参考价值。
python代码实现二叉树的镜像树
请完成一个函数,输入一个二叉树,该函数输出它的镜像。例如下图所示,左图是原二叉树,而右图则是该二叉树的镜像。
可以总结出这两棵树的根节点相同,但它们的左、右两个子节点交换了位置。所以我们可以得出求一棵树的镜像的过程:先前序遍历这棵树的每个节点,如果遍历到的节点有子节点,就交换它的两个子节点。当交换完所有非叶节点的左、右子节点之后,就得到了树的镜像。
Step1.先序遍历原二叉树的每个节点,如果遍历到的结点有子结点,就交换它的两个子结点。
Step2.递归遍历每个节点的子节点,同样,如果遍历到的子节点有子节点,就交换它的两个子节点。
当交换完所有非叶子结点的左右子结点之后,就得到了树的镜像。
# 需要判断输入的结点为空或者输入的结点没有子树的情况。
\'\'\'
操作给定的二叉树,将其变换为源二叉树的镜像。
\'\'\'
# -*- coding:utf-8 -*-
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution:
# 递归实现
def Mirror(self, root):
if root &
以上是关于python代码实现二叉树的镜像树的主要内容,如果未能解决你的问题,请参考以下文章