В вашем текущем алгоритме нет способа подсчета уровней, поскольку вы не отслеживаете достаточно информации в алгоритме.
Как вы говорите, отслеживать уровни намного проще при выполнении рекурсии.Разница между рекурсией и взаимодействием не так уж велика.Вы обмениваетесь вызовом функции для цикла и некоторой незначительной реструктуризацией своего кода, чтобы компенсировать цикл.
Вы все равно сможете выяснить текущую глубину, даже если у вас есть итеративный алгоритм.Если вы начнете с рекурсивной версии и продолжите свой путь к итеративному решению, сохраняя при этом глубокие знания, то я думаю, что вы решите его.
Мне кажется, что это школьная работа, поэтому я не дам вамрешение.Надеюсь, вы понимаете.
Один совет может содержать не только путь в вашей очереди, но и глубину, например, в виде кортежа.