这篇文章总结了关于二叉树的创建和各种遍历方式。
二叉树的创建方式
- 通过层次遍历顺序创建
- 先序遍历顺序(带上叶子结点标识符)创建
- 先序顺序+中序顺序
- 中序顺序+后序顺序
二叉树的递归方式
- 先序遍历(递归+非递归)
- 中序遍历(递归+非递归)
- 后序遍历(递归+非递归)
- 广度优先遍历(BFS)
首先来定义一下节点的结构
class Node():
def __init__(self, val):
self.val = val
self.left = None
self.right = None
然后定义树类
class BinaryTree():
def __init__(self):
self.root = None
self.queue = [] #用来存放正在操作的三个树节点,分别是root,left和right
self.create_queue = [] #用来存放先序序列来创建二叉树
pass
然后开始实现函数,这些函数都是在BinaryTree这个类下定义的。
通过先序序列带有叶子结点标识符创建二叉树
#通过先序序列创建二叉树,没有左右子节点被标记为'#'
def createTree(self):