算法题一感觉没表述清楚,既然你说暴力BFS解那我就当是无权图了。 把白色节点按照是否直接和黑色节点相邻分成两类。如果相邻,那么距离是1。如果不相邻,那么这个节点必须经过别的白色节点才可以到达黑色节点。相当于在所有白色节点构成的子图中,求这个节点到最近的与黑色节点相邻的白色节点的距离再加一。 那么初始化把所有和黑色节点相邻的白色节点距离设为1,跑一遍BFS求其他白色节点的最短路就完事了。