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) {}
};

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

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

Пример

prb10057.gif

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

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