Симетричний обхід дерева#10059

Симетричний обхід дерева

1 секунда
128 мегабайтів
Дуже легка

Реалізуйте обхід бінарного дерева в симетричному порядку (InOrder). Під час такого обходу спочатку відвідується ліве піддерево, потім корінь, а потім праве піддерево.

Визначення вершини дерева:

// 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, яка виводить всі значення вершин дерева в одному рядку в порядку симетричного (InOrder) обходу, розділяючи їх одним пробілом.

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

Приклад

prb10057.gif

Під час симетричного обходу вершини будуть виведені у такому порядку: 1 2 3 4 9 10 16.