Обратный обход (post-order traversal) двоичного дерева

Обход дерева в порядке post-order — это рекурсивная процедура, при которой сначала посещается левое поддерево узла, затем его правое поддерево и только после этого сам узел:
  1. Visit the left subtree (node.left)
  1. Visit the right subtree (node.right)
  1. Visit the current node
По заданному двоичному дереву требуется выполнить обход в порядке post-order.

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

Входные данные содержат целые числа, разделённые пробелами, которые соответствуют значениям узлов двоичного дерева. Порядок этих значений задаётся при обходе от левого к правому поддереву. Число 0 означает, что узел отсутствует. Гарантируется, что введённое двоичное дерево является корректным.

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

Программа должна вывести значения узлов двоичного дерева при выполнении обхода в порядке post-order, разделяя их одним пробелом.

Примеры

Входные данные
Выходные данные
1 2 3 4 5 8 9 0 0 0 0 0 0 6 7 0 0 0 0
8 9 4 5 2 6 7 3 1
1 2 3 4 5 8 0 0 0 0 0 6 7 0 0 0 0
8 4 5 2 6 7 3 1
1 2 3 4 5 0 0 0 0 6 7 0 0 8 9 0 0 0 0
4 5 2 6 8 9 7 3 1
1 2 3 4 5 0 0 7 8 0 0 0 0 0 6 0 0
4 7 8 5 2 6 3 1

Пояснение

  1. Пример 1:
    1. notion image
  1. Пример 2:
    1. notion image
  1. Пример 3:
    1. notion image
  1. Пример 4:
    1. notion image
 
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue