Да, проблема в том, что ваш алгоритм неверен. Когда вы запускаете итерацию цикла, и ваша очередь не пуста, вы добавляете узлы 'levCount' в конец очереди, но затем вы извлекаете узлы 'levCount' с самого начала (queue.remove ()), и они имеют ничего общего с узлами, которые вы добавили в конец. Это не обычный / подлинный поиск BFS, а ошибочная версия. Обычный поиск BFS следует этому псевдокоду:
while (queue is not empty)
node = remove first from queue
<process / print node>
for each child of node
push child to queue
Если вы хотите обработать каждый уровень в режиме BFS, вам нужен другой алгоритм.