Логотип YeaHub

Поиск белок на дереве (Find Squirrels in Tree)

2

GoJavaJavaScriptPython

Деревья

Яндекс

Условие:
На дереве в виде узлов сидят разные животные (белки и вороны). Каждый узел дерева содержит тип животного и его имя, а также список дочерних узлов (веток с животными). Реализуйте функцию, которая обходит дерево и возвращает имена всех белок в порядке обхода в глубину (preorder).

Входные данные:
Корень дерева — объект вида { type: "squirrel" | "crow", name: string, children: [...] }. children — массив таких же объектов (может быть пустым или отсутствовать).

Выходные данные:
Массив строк — имена всех животных с типом "squirrel", в порядке DFS-обхода.

Ограничения:

  • Глубина дерева до 100

  • Количество узлов до 1000

  • Тип животного — только "squirrel" или "crow"

Пример:

Вход: {
  type: "crow", name: "Grayfeather",
  children: [
    { type: "squirrel", name: "Acorn", children: [
      { type: "squirrel", name: "Sirsalty" }
    ]},
    { type: "crow", name: "Blackwing", children: [
      { type: "squirrel", name: "Macadamia" },
      { type: "squirrel", name: "Kernel" }
    ]}
  ]
}
Выход: ["Acorn", "Sirsalty", "Macadamia", "Kernel"]
Loading...