level-by-level bfs search