BFS模板

发布时间 2023-12-21 17:16:46作者: Frommoon
#class Solution:
#     def BFS(self, start, target):
#         q = []  # 用一个列表做队列
#         v = []  # 记录走过的路
#         q.append(start)  # 把起点放入队列
#         v.append(start)  #加入走过的路
#         step = 0  # 记录扩散步数
#         while q:  # 当队列不为空时
#             size = len(q)
#             # 将当前队列中的所有节点向四周扩散
#             for _ in range(size):
#                 cur = q.pop(0)  # 从头部取出节点
#                 if cur == target:  # 判断是否到达终点
#                     return step
#                 for x in cur.neighbors:  # 将cur的相邻节点加入队列
#                     if x not in v: #如果结点没有访问过
#                         q.append(x)
#                         v.append(x)
#             step += 1  # 增加步数