遍历二叉树也就是按照某种次序,顺着制定的搜索路径访问二叉树中的各个结点,该过程中每个结点被且仅被访问一次。
根据二叉树的结构特征,可以有两种搜索路径,广度优先遍历和深度优先遍历。
形如:
首先构造二叉树结点类
'''
二叉树结点
'''
class TreeNode:
def __init__(self,val=None,left=None,right=None):
self.val = val
self.left = left
self.right = right
def settag(self,tag=None):
self.tag = tag
def visit(treenode):
print(str(treenode.val),end=' ')
广度优先遍历,也是层次遍历,自上而下,自左向右,使用队列数据结果实现:
import queue
'''
广度优先遍历
'''
def levelOrder(root):
deque = queue.Queue()
if(root is not None):
deque.put(root)
while(not deque.empty(