0

如何为每个后续级别预先打印带有缩进(3 个空格)的二叉树。此时,我正在使用辅助方法递归地打印出树,但我不确定如何编写缩进代码。这是我到目前为止所拥有的:

public void print() {
      printPreorder(root);
      System.out.println();
}

private void printPreorder(BinaryTreenode<E> node) {
      System.out.println(node.getData() + " ");
      if (node.getLeft() != null) {
            printPreorder(node.getRight());
      }
      if (node.getRight() != null) {
            printPreorder(node.getRight());
      }
}

我的直接想法是放入一个计数器并在每次递归调用该方法时使其递增,然后为每个递增缩进三个空格,但我不确定这是执行此操作的最佳方法。

4

1 回答 1

1

你正朝着正确的方向前进。这是一些通用的伪代码:

void print(node) {
  print(node, "")
}

private void print(node, indent) {
  if(node is null) return
  output(indent + node.data)
  print(node.left, indent + "  ")
  print(node.right, indent + "  ")
}
于 2012-11-16T21:30:39.173 回答