Найдите узлы, чьи дочерние элементы имеют одинаковый модуль с K

Опубликовано: 19 Сентября, 2022

Для заданного бинарного дерева и целого числа 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 0

Input: 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)

РЕКОМЕНДУЕМЫЕ СТАТЬИ