Я хочу сохранить обратный порядок в дереве, а не распечатать его? Я использую рекурсивный подход. Как сохранить правильный порядок в массиве? - PullRequest
0 голосов
/ 23 января 2020

Я пытался использовать глобальный массив для сохранения значений. Но как мне написать базовый вариант для рекурсии? Если я каждый раз возвращаю массив, как мне поддерживать правильный порядок обхода дерева?

1 Ответ

0 голосов
/ 23 января 2020

Не уверен, какой язык вы используете, но поскольку вы упомянули, что пытаетесь использовать глобальный массив, я предполагаю, что он позволяет вам добавлять массив. Это означает, что вам не нужно отслеживать правильный индекс массива для каждого значения дерева, поскольку вы добавляете массив в правильном порядке. Будет работать что-то вроде следующего псевдокода.

postOrderTree: int[] = [];

func createPostOrderTree(TreeNode node) {
  if node is null {
    return;
  }
  createPostOrderTree(node.leftChild);
  createPostOrderTree(node.rightChild);
  postOrderTree.append(node.val);
}
...