如何将python二叉树转换成二叉树镜像
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,本篇文章给大家分享的是有关如何将python二叉树转换成二叉树镜像,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。二叉树镜像题目操作给定的
千家信息网最后更新 2025年12月03日如何将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安全错误
数据库的锁怎样保障安全
什么数据库可以进行文件传递
网络安全部门官方
新疆网络安全电话
闪电网络无法连接服务器
java数据库开发工程师
网络安全工作坚持属地管理
电信网络安全预警
网络安全工作情况提纲
计算机网络技术初步知识
再生邦网络技术
关于部队手机网络安全心得体会
网页登录数据库设计
信息网络安全应急演练评估
网络安全登记保护二级标准
教资缴费后显示内部服务器错误
怎么注册阿里云服务器
网络安全市场细分
计算机中数据库有哪些
网络安全哈工大考研
讲述网络安全业务的书
数据库bds是什么意思
网络技术展厅
在我国网络安全专门立法
游戏服务器多久备份一次
计算机软件开发会计账务处理
网络技术与伦理
客户端与服务器端区别
湖南通用软件开发市场价
网络安全的文章小文章
长沙服务器机柜价格怎么样