首页 > 解决方案 > 我想存储树后序遍历而不是打印它?我正在使用递归方法。它如何在数组中存储正确的顺序?

问题描述

我尝试使用全局数组来保存值。但是我如何编写递归的基本情况?如果我每次都返回一个数组,如何保持树遍历的正确顺序?

标签: treetree-traversalpostorder

解决方案


不确定您使用的是什么语言,但由于您提到尝试使用全局数组,我假设它允许您附加到数组。这意味着您并不真正关心跟踪每个树值的正确数组索引,只要您以正确的顺序附加到数组即可。类似于以下伪代码的东西将起作用。

postOrderTree: int[] = [];

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

推荐阅读