我有以下方法递归地执行三叉树的预序遍历,但在以某种方式打印它时遇到了困难。
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
我想缩进树的每一层,以便更容易地可视化树的结构。请帮帮忙。
发布于 2020-04-14 00:32:51
添加一个参数,用于标高的缩进程度。如果字符串的字符数与要缩进的字符数完全相同,则可以很好地执行此操作。当你进行递归调用时,缩进得更深。
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);
}
https://stackoverflow.com/questions/61198806
复制相似问题