如何将python二叉树转换成二叉树镜像
发表于:2025-02-16 作者:千家信息网编辑
千家信息网最后更新 2025年02月16日,本篇文章给大家分享的是有关如何将python二叉树转换成二叉树镜像,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。二叉树镜像题目操作给定的
千家信息网最后更新 2025年02月16日如何将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安全错误
数据库的锁怎样保障安全
网络安全知识宣传手册
在数据库设计中概念模型是
深圳市英威腾网络技术有限公司
服务器token获取
服务器现存问题
潜力互联网科技公司
河南储存服务器机箱价格
数据库中mb是什么意思
计算机软件开发的五行
上海濠殊互联网科技客服电话
碰一碰加好友软件开发
仟宿服务器
sql 没有服务器
数据库技术50年发展成就
服务器大概多少钱
旧版网易云服务器错误
三级数据库技术软件
网络技术以太网论文
河南同城生鲜配送软件开发
临沂科技互联网
三级数据库技术考什么啊
服务器商标
什么数据库可以看中世纪文献
bs什么软件开发
数据库连接池的原理
数据库备份操作系统
数科网络安全全流程
网络安全监督整改报告
dns服务器填谁好一点
数据库技术及其应用试题