eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Сумма левых листов

Сумма левых листов

Задан массив целых чисел. Создайте из них Бинарное Дерево Поиска. Если вставляемое значение равно текущей вершине, то его следует вставлять в правое поддерево.

Реализуйте метод SumLeft, который возвращает сумму всех левых листов в дереве.

prb7463.gif

Напишите код согласно следующего интерфейса:

class TreeNode
{
public:
  int val;
  TreeNode *left;
  TreeNode *right;
  TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};

class Tree
{
public:
  TreeNode *head;
  Tree() : head(NULL) {};
  void Insert(int val); // Вставка числа val в Бинарное Дерево Поиска
  int SumLeft(void); // Вернуть сумму всех левых листов в дереве
};

Вы можете создавать (использовать) по необходимости дополнительные методы.

Входные данные

Первая строка содержит число n (1n100). Вторая строка содержит n целых чисел.

Выходные данные

Создайте Бинарное Дерево Поиска из входных данных. Выведите сумму всех левых листов в дереве. Если дерево не содержит левых листов, то вывести 0.

Лимит времени 1 секунда
Лимит использования памяти 128 MiB
Входные данные #1
6
14 9 1 14 20 13
Выходные данные #1
1
Автор Михаил Медведев
Источник Язык С++