Сумма узлов зеркального отображения полного двоичного дерева в неупорядоченном порядке

Опубликовано: 13 Января, 2022

Учитывая полное двоичное дерево, задача состоит в том, чтобы найти сумму узлов зеркального отображения в неупорядоченном порядке, то есть найти обход в порядке обхода левого поддерева, и для каждого пройденного узла добавить значение его зеркального узла к значению текущего узла .

Примеры:

Input:

Output:
20
51
19
10
Inorder traversal of the left sub-tree of the given tree is 4 23 11 5.
Adding the mirror nodes,
4 + 16 = 20
23 + 28 = 51
11 + 8 = 19
5 + 5 = 10

Рекомендуется: сначала попробуйте свой подход в {IDE}, прежде чем переходить к решению.

Подход: мы будем использовать 2 указателя для поддержки 2 узлов, которые являются зеркальным отображением друг друга. Итак, возьмем root1 и root2 - это 2 узла зеркального отображения. Теперь левый дочерний элемент root1 и правый дочерний элемент root2 будут зеркальным отображением друг друга. Мы передадим эти два узла (root1-> left и root2-> right) для следующего рекурсивного вызова. Поскольку мы должны перемещаться по порядку, то после обхода левого поддерева мы печатаем текущие корневые данные, а затем обходим правое поддерево. Аналогично для правого поддерева, правый дочерний элемент root1 и левый дочерний элемент root2 будут зеркальным отображением друг друга. Мы передадим эти два узла (root1-> right и root2-> left) для следующего рекурсивного вызова.

Ниже представлена реализация описанного выше подхода.

Вниманию читателя! Не прекращайте учиться сейчас. Освойте все важные концепции DSA с помощью самостоятельного курса DSA по приемлемой для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .

Если вы хотите посещать живые занятия с отраслевыми экспертами, пожалуйста, обращайтесь к Geeks Classes Live и Geeks Classes Live USA.