Сортировка BST по O (n) с использованием постоянной памяти

Это не домашняя работа. Просто интересное задание :)

Дан полный двоичный поиск трех представленных массивом. Сортируйте массив в O (n), используя постоянную память.

Пример:

Дерево:

              8
           /     \
          4       12
         /\       / \
        2  6     10  14
       /\  /\    /\   /\
      1 3 5  7  9 11 13 15

Массив: 8, 4, 12, 2, 6, 10, 14, 1, 3, 5, 7, 9, 11, 13, 15

Выход: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15