广度遍历 (bfs):
将每一层按从左到右的顺序输出
def bfs(root:TreeNode):
if root==None:
return
queue=[root]
while queue!=[]
cur=queue.pop(0) # 队列按照同一层 左节点-右节点 的顺序弹出
print(cur.item)
if cur.left:
queue.append(cur.left) # 队列按照同一层 左节点-右节点 的顺序存入
if cur.right:
queue.append(cur.right)
深度遍历:分别按照前序、中序、后序遍历
def preorder_travel(self,node):
if node==None:
return
print(node.item,end=" ")
self.preorder_travel(node.left)
self.preorder_travel(node.right)
def midorder_travel(self,node):
if node==None:
return
self.midorder_travel(node.left)
print(node.item, end=" ")
self.midorder_travel(node.right)
def backorder_travel(self,node):
if node==None:
return
self.backorder_travel(node.left)
self.backorder_travel(node.right)
print(node.item,end=" "