Task 23. Вывести все левые элементы в бинарном дереве
UniLecsЗадача: вывести все левые элементы в двоичном дереве:
Идея: левые узлы в дереве являются первым узлами на своих уровнях. Поэтому нам нужно обойти все дерево и печатать первые узлы на каждом уровне. Для обхода дерева воспользуемся рекурсией и будем следить за уровнем, передавая его в параметры функции.
Например, если мы видим узел, уровень которого превышает максимальный уровень(там где мы уже были), то выводим его, т.к. это первый узел (извиняюсь за тавтологию, надеюсь вы меня поняли).
Для вывода всех правых элементов, нам нужно выводить последний узел каждого уровня.
Реализация:
https://gist.github.com/unilecs/f7b6e5300299c569f5eb9ec68513e422
P.S. Еще одну реализацию нам прислал @mrmeison
https://gist.github.com/unilecs/f442ef442842122068393b02a861d4ff