Task 23. Вывести все левые элементы в бинарном дереве

Task 23. Вывести все левые элементы в бинарном дереве

UniLecs

Задача: вывести все левые элементы в двоичном дереве:

Output: 1 2 4 6

Идея: левые узлы в дереве являются первым узлами на своих уровнях. Поэтому нам нужно обойти все дерево и печатать первые узлы на каждом уровне. Для обхода дерева воспользуемся рекурсией и будем следить за уровнем, передавая его в параметры функции.

Например, если мы видим узел, уровень которого превышает максимальный уровень(там где мы уже были), то выводим его, т.к. это первый узел (извиняюсь за тавтологию, надеюсь вы меня поняли).

Для вывода всех правых элементов, нам нужно выводить последний узел каждого уровня.

Реализация:

реализация на JS

https://gist.github.com/unilecs/f7b6e5300299c569f5eb9ec68513e422


P.S. Еще одну реализацию нам прислал @mrmeison

реализация на JS

https://gist.github.com/unilecs/f442ef442842122068393b02a861d4ff

Report Page