预订打印二进制树与缩进

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

public void print() { printPreorder(root); System.out.println(); } private void printPreorder(BinaryTreenode node) { System.out.println(node.getData() + " "); if (node.getLeft() != null) { printPreorder(node.getRight()); } if (node.getRight() != null) { printPreorder(node.getRight()); } } 

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

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

 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 + " ") }