千家信息网

如何将python二叉树转换成二叉树镜像

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇文章给大家分享的是有关如何将python二叉树转换成二叉树镜像,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。二叉树镜像题目操作给定的
千家信息网最后更新 2026年11月02日如何将python二叉树转换成二叉树镜像

本篇文章给大家分享的是有关如何将python二叉树转换成二叉树镜像,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

二叉树镜像

题目

操作给定的二叉树,将其变换为源二叉树的镜像。

思路

  • 先遍历, 节点入栈, 再依次出栈调换左右节点

  • 遍历的过程中调换左右节点

代码

# -*- coding:utf-8 -*-class TreeNode:    def __init__(self, x):        self.val = x        self.left = None        self.right = None# -*- coding:utf-8 -*-# class TreeNode:#     def __init__(self, x):#         self.val = x#         self.left = None#         self.right = Noneclass Solution:    # 先遍历, 入栈, 再调换左右节点    def Mirror(self, root):        # 判断传入节点是否为空        if root is None:            return None        line_node = self.printLevelNode(root)        # print(line_node)        while line_node:            tmp = line_node.pop()            if tmp.left or tmp.right:                tmp.left, tmp.right = tmp.right, tmp.left        return tmp    # 层次遍历二叉树, 被调用    def printLevelNode(self, root):        line_node = []        res = []        line_node.append(root)        while line_node:            tmp = line_node.pop(0)            res.append(tmp)            if tmp.left:                line_node.append(tmp.left)            if tmp.right:                line_node.append(tmp.right)        return res    # 层次遍历的过程中调换左右节点    def Mirror2(self, root):        if root is None:            return None        line_node = []        line_node.append(root)        while line_node:            tmp = line_node.pop(0)            if tmp.left:                line_node.append(tmp.left)            if tmp.right:                line_node.append(tmp.right)            # if tmp.left or tmp.right:            tmp.left, tmp.right = tmp.right, tmp.left        return root    # 递归遍历的过程中调换左右节点    def Mirror3(self, root):        if root is None:            return None        root.left, root.right = root.right, root.left        self.Mirror3(root.left)        self.Mirror3(root.right)        return rootif __name__ == '__main__':    node1 = TreeNode(8)    node2 = TreeNode(6)    node3 = TreeNode(10)    node4 = TreeNode(5)    node5 = TreeNode(7)    node6 = TreeNode(9)    node7 = TreeNode(11)    node1.left = node2    node1.right = node3    node2.left = node4    node2.right = node5    node3.left = node6    node3.right = node7    sl = Solution()    ls = sl.Mirror3(node1)    print(ls)    for i in sl.printLevelNode(ls):        print(i.val)

以上就是如何将python二叉树转换成二叉树镜像,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

节点 镜像 过程 层次 更多 知识 篇文章 utf-8 实用 代码 就是 工作会 思路 文章 看吧 知识点 行业 详情 资讯 资讯频道 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 手冲咖啡和咖啡机区别 互联网科技公司 百单网互联网科技有限公司怎么样 互联网科技公司华为 金融科技创新监管互联网金融 北京互联网科技公司 易互联网科技有限公司 互联网 科技创新 美国互联网科技 九亚互联网科技 互联网科技公司招聘 福建科技产业互联网发展 宜昌元轩互联网科技有限公司 广州市恰铎互联网科技有限公司 深圳育鹏互联网科技有限公司招聘 阿里互联网科技企业 济南有互联网科技公司吗 互联网企业科技类企业如何做账 济南小医互联网科技有限公司招聘 互联网科技创新方面的资料 青岛互联网科技公司 互联网科技公司官网 人人互联网科技是培训 海南科技产业互联网平台 科技与互联网哪个更好 福建科技产业互联网发展 互联网新科技动漫ppt素材 卓翼科技产业互联网合作 互联网营销推广黑科技 富国互联网金融科技混合基金
0