如何为每个后续级别预先打印带有缩进(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());
}
}
我的直接想法是放入一个计数器,并在每次递归调用该方法时递增,然后为每个增量缩进三个空格,但我不确定这是执行此操作的最佳方法。 / p>
答案 0 :(得分: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 + " ")
}