Найдите узлы, чьи дочерние элементы имеют одинаковый модуль с K
Для заданного бинарного дерева и целого числа K задача состоит в том, чтобы вывести все узлы, имеющие потомков с одинаковым остатком при делении на K. Выведите « -1 », если такой вершины не существует.
Примеры :
Input: K = 2
2
/
3 5
/ /
7 8 6
Output: 2, 5
Explanation: Children of 2 = 3 and 5. Both give remainder 1 with 2, Similarly for 5, both children give remainder as 0Input: K = 5
9
/
7 8
/
4 3
Output: -1
Explanation: There is no node having both children with same remainder with K.
Подход : Задача может быть решена с помощью поиска в глубину. Пройдитесь по двоичному дереву и для каждого узла проверьте:
- Если узел имеет левого потомка
- Если у узла есть правильный дочерний элемент
- Если оба ребенка дают одинаковый остаток с K
- Сохраните все такие узлы в векторе и распечатайте его содержимое в конце.
Ниже приведена реализация вышеуказанного подхода:
Временная сложность : O(N)
Вспомогательное пространство : O(1)