ZigZag Level Order Обход N-арного дерева
Опубликовано: 21 Сентября, 2022
Учитывая универсальное дерево, состоящее из N узлов, задача состоит в том, чтобы найти обход зигзагообразного порядка данного дерева.
Примеры:
Input:
Output:
1
3 2
4 5 6 7 8
Подход: Данная проблема может быть решена с помощью BFS Traversal. Подход очень похож на обход по порядку уровней N-арного дерева. Можно заметить, что при изменении порядка четных уровней во время обхода порядка уровней полученная последовательность является обходом зигзага. Основываясь на этих наблюдениях, ниже приведены шаги, которые необходимо выполнить:
- Во время обхода BFS сохраните узлы каждого уровня в векторе, скажем, curLevel[] .
- Для каждого соответствующего уровня сохраните curLevel в вектор векторов, скажем, result[] .
- Переверните векторы, присутствующие в четных позициях в результате[] .
- После выполнения вышеперечисленных шагов все векторы сохраняют в результате[] требуемый результат.
Ниже приведена реализация вышеуказанного подхода:
Временная сложность: O(N)
Вспомогательное пространство: O(N)
