模版一

  1. while queue 不空:
  2. cur = queue.pop()
  3. if cur 有效且未被访问过:
  4. 进行处理
  5. for 节点 in cur 的所有相邻节点:
  6. if 该节点有效:
  7. queue.push(该节点)

模版二

  1. level = 0
  2. while queue 不空:
  3. size = queue.size()
  4. while (size --) {
  5. cur = queue.pop()
  6. if cur 有效且未被访问过:
  7. 进行处理
  8. for 节点 in cur的所有相邻节点:
  9. if 该节点有效:
  10. queue.push(该节点)
  11. }
  12. level ++;