我有以下方法来递归地执行三叉树的前序遍历,但难以以某种方式打印它。
public void preOrder(Node node) {
if (node == null) {
return;
}
System.out.print(" " + node.data);
preOrder(node.left);
preOrder(node.middle);
preOrder(node.right);
}
Output: Root LeftChild LeftChildA LeftChildB LeftChildC MiddleChild RightChild
Desired Output:
Root
Left
LeftChildA //Left child of left
LeftChildB //Middle child of left
LeftChildC //Right child of left
Middle
Right
我想缩进树的每一层,以便更容易地可视化树的结构。 请帮忙。
最佳答案
添加一个参数来确定级别应缩进多远。具有您想要缩进的确切字符数的字符串效果很好。当您进行递归调用时,缩进得更深。
public void preOrder(Node node) {
String initialIndent = ""; // Root level has no indentation
preOrderHelper(initialIndent, node);
}
public void preOrderHelper(String indent, Node node) {
if (node == null) {
return;
}
System.out.println(indent + node.data);
String newIndent = indent + " ";
preOrderHelper(newIndent, node.left);
preOrderHelper(newIndent, node.middle);
preOrderHelper(newIndent, node.right);
}
关于java - 如何打印出三叉树?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61198806/