bfs 模板
def bfs(Node start, Node end): -> int
q = []
visited = set()
q.append(start)
visited.add(start)
cnt = 0
while q:
for i in range(len(q)):
cur = q.pop(0)
if cur == end: return cnt
for x in cur.adj():
if x not in visited:
q.append(x)
visited.add(x)
cnt += 1
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
#