1、何为层次遍历
说白了,就是一层一层、由上至下、由左至右的搜索遍历二叉树中的元素。
上面这个二叉树,那么层次遍历的输出应该是:1、2、3、4、5、6、7、8、9
2、解题思路
利用队列,依次将根,左子树,右子树存入队列,按照队列的先进先出规则来实现层次遍历。
3、编程实现
class Node():
# 节点类
def __init__(self, data=-1):
self.data = data
self.left = None
self.right = None
class Tree():
# 树类
def __init__(self):
self.root = Node()
def add(self, data):
# 为树加入节点
node = Node(data)
if self.root.data == -1: # 如果树为空,就对根节点赋值
self.root = node
else:
myQueue = []
treeNode = self.root