Зачем передавать level при рекурсивном обходе дерева

При начальном нуле вычисляемый отступ станет нулевым на всех уровнях. Level хранит глубину, а не число посещённых узлов или индекс ребёнка.

Короткий ответ

Что ответить на собеседовании

При начальном нуле вычисляемый отступ станет нулевым на всех уровнях. Level хранит глубину, а не число посещённых узлов или индекс ребёнка.

Подробный разбор

Ответ с пояснениями

Условие

Функция render(node, level=0) выводит строку с отступом level * 16 и вызывает детей с level+1. Что изменится, если всем детям передавать level без увеличения?

Ответ

При начальном нуле вычисляемый отступ станет нулевым на всех уровнях. Level хранит глубину, а не число посещённых узлов или индекс ребёнка.

У соседних узлов одной глубины level одинаковый. Увеличивать нужно значение, переданное конкретному ребёнку, а не общий счётчик между всеми ветками. Если DOM уже вложенный и отступ задаётся CSS родителя, визуальная вложенность может сохраниться независимо от level; это другой источник отступа.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее