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

Tree Центрированный обход дерева

Tree Центрированный обход дерева

Реализуйте центрированный обход дерева. При центрированном обходе сначала посещается левое поддерево, потом корень, потом правое поддерево.

Определение дерева:

// Java
class TreeNode
{
public:
  int val;
  TreeNode left;
  TreeNode right;
  TreeNode(int x) {
    val = x;
    left = NULL; 
    right = NULL;
};
// C++
class TreeNode
{
public:
  int val;
  TreeNode *left;
  TreeNode *right;
  TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};

Реализуйте функцию InOrder которая выводит в одной строке вершины дерева в порядке центрированного обхода. При выводе вершины следует разделять одним пробелом.

// Java
void InOrder(TreeNode tree)
// C++
void InOrder(TreeNode *tree)

Пример

prb10057.gif

При центрированном обходе порядок вывода вершин будет следующим: 1 2 3 4 9 10 16.

Ліміт часу 1 секунда
Ліміт використання пам'яті 128 MiB
Автор Михаил Медведев