На сайте есть рубрикатор — лес категорий:
Еда
└── Напитки
├── Горячие
└── Холодные
Спорт
├── Мячи
│ └── Футбольные
└── Ракетки
Книги
Верните все конечные категории (без детей) с полным путём от корня, через =>.
type Node struct {
Text string
Children []*Node
}
// LeafPaths возвращает пути до всех листьев леса roots в порядке обхода в глубину.
func LeafPaths(roots []*Node) []string
Пример (для дерева выше)
["Еда => Напитки => Горячие",
"Еда => Напитки => Холодные",
"Спорт => Мячи => Футбольные",
"Спорт => Ракетки",
"Книги"]
Требования
- Порядок — обход в глубину, корни и дети слева направо (как в примере).
- Корень без детей — сам лист (
"Книги"). Пустой лес — пустой результат.
nil в Children не бывает. Названия могут повторяться в разных ветках.
- До 10⁵ узлов. Время — O(суммарной длины ответа).
Разбор и эталонное решение — после своей попытки: на собеседовании подсказок не будет.
Сначала попробуй сам — подсказки не дают готовый ответ.