Python实现二叉树
来源:互联网 发布:裤子品牌 知乎 编辑:程序博客网 时间:2024/06/05 13:32
使用python实现的一个二叉树的实现方式(更新中)
对应letcode--538. Convert BST to Greater Tree
class TreeNode(object): def __init__(self, x): self.val = x self.left = None self.right = Noneclass Solution(object): def convertBST(self, root): """ :type root: TreeNode :rtype: TreeNode """ def visit1(root): if root: visit1(root.left) vals.append(root.val) visit1(root.right) vals = [] visit1(root) self.s = 0 def visit2(root): if root: visit2(root.right) self.s += vals.pop() root.val = self.s visit2(root.left) visit2(root) return rootinput_5=TreeNode(5)input_18=TreeNode(18)input_all=TreeNode(2)input_all.left=input_5input_all.right=input_18slu_=Solution()print input_allt=slu_.convertBST(input_all)print t
关于二叉树的相关的操作如下
class TreeNode(object): def __init__(self,data=0,left=0,right=0): self.data = data self.left = left self.right = rightclass BTree(object): def __init__(self,root=0): self.root = root def is_empty(self): if self.root is 0: return True else: return False def preOrder(self,treenode): if treenode is 0: return print treenode.data self.preOrder(treenode.left) self.preOrder(treenode.right) def inOrder(self,treenode): if treenode is 0: return self.inOrder(treenode.left) print treenode.data self.inOrder(treenode.right) def postOrder(self,treenode): if treenode is 0: return self.postOrder(treenode.left) self.postOrder(treenode.right) print treenode.datan1 = TreeNode(data=1)n2 = TreeNode(2,n1,0)n3 = TreeNode(3)n4 = TreeNode(4)n5 = TreeNode(5,n3,n4)n6 = TreeNode(6,n2,n5)n7 = TreeNode(7,n6,0)n8 = TreeNode(8)root = TreeNode('root',n7,n8)bt = BTree()print 'preOrder......'print bt.preOrder(root)print 'inOrder......'print bt.inOrder(bt.root)print 'postOrder.....'print bt.postOrder(bt.root)
阅读全文
0 0
- Python实现二叉树
- python实现二叉树
- python实现二叉树
- Python实现二叉树
- Python实现二叉树
- Python实现二叉树
- python实现二叉树
- Python实现二叉树
- 二叉查找树:Python实现
- python实现二叉查找树
- 二叉查找树python实现
- python实现二叉树遍历
- python实现二叉查找树
- 二叉树的实现 Python
- 二叉查找树python实现
- 二叉搜索树 python实现
- python实现二叉树排序
- python实现二叉树,以及二叉树的遍历
- iOS每日一记之———————————————JS调用OC的代码(客户端实现)
- Hibernate 查询MatchMode的四种模式
- 课堂在线Java程序设计 哥德巴赫猜想
- 用JS做一个简单的电商产品放大镜功能
- 百度地图android6.0以上地图不显示
- Python实现二叉树
- OpenCV—基本矩阵操作与示例
- python 中文字符乱码的问题
- Linux I/O多路转接----poll模型
- GridView控件的“编辑”,“删除”不可用的问题
- mybatis动态sql中的trim标签的使用
- FileZilla Server Failed to initialize ssl library 问题解决
- Kotlin教程学习-数据类型
- 课堂在线Java程序设计 最大公约数和最小公倍数