Назад к вопросам
Middle
5
Задача: обход дерева с выводом текста с отступами (рекурсивный обход вложенного списка)
Компании, где спрашивали
МПФИТ
Ответ от нейросети
sobes.tech AI
Для рекурсивного обхода дерева с выводом текста с отступами можно использовать функцию, которая принимает узел и уровень вложенности. На каждом уровне добавляем отступы, например, с помощью пробелов или табуляций.
Пример на JavaScript для вложенного списка объектов:
function printTree(node, indent = 0) {
console.log(' '.repeat(indent) + node.text);
if (node.children) {
node.children.forEach(child => printTree(child, indent + 2));
}
}
// Пример данных
const tree = {
text: 'root',
children: [
{ text: 'child1' },
{ text: 'child2', children: [
{ text: 'grandchild1' },
{ text: 'grandchild2' }
]}
]
};
printTree(tree);
Вывод будет с отступами, отражающими глубину вложенности:
root
child1
child2
grandchild1
grandchild2
Такой подход универсален и легко адаптируется под разные структуры и форматы вывода.