Get Lonely Binary Nodes

Albert Davletov
UniLecs
Published in
Sep 10, 2021

Дадим определение “одинокого узла” в двоичном дереве. Это узел, который является единственным потомком своего родительского узла. Корень дерева не является одиноким узлом, так как у него нет родительского узла.

Задача: вам дано двоичное дерево. Необходимо вернуть массив, содержащий значения всех одиноких узлов в дереве.

Входные данные: root — корень двоичного дерева.

Вывод: массив значений одиноких узлов.

Пример:

Output: [9, 4]

Output: [9, 4]

Разбор

Рекурсивно пройдем по двоичному дереву: для каждого узла проверим условие для одинокого узла, т.е. только один из потомков (правый или левый) должен отсутствовать. Если это условие выполняется, записываем значение единственного потомка в результирующий список.
Продолжаем рекурсивный поиск для следующих узлов.

Реализация

C#

https://gist.github.com/unilecs/0a8aac8308c1dce726bf65afc0c6f449

Play-test

https://dotnetfiddle.net/dcFTsv

--

--