java使用toString递归打印节点及其成功者
考虑到节点。爪哇:
public class Node {
private int value;
private ArrayList<Node> successors;
我想创建一个toString方法,该方法递归打印后继对象及其后继对象,以此类推:
( A )
-> ( B )
-> ( C )
-> ( D )
我不知道如何将\t
添加到toString方法以获得打印:
public String toString() {
StringBuilder successorsString = new StringBuilder();
for (Node sucessor : this.successors ) {
successorsString.append("\n\t ->"+ sucessor );
}
return "( " + this.value +" )" + successorsString;
}
# 1 楼答案
这个问题看起来很像一个图/树遍历问题。从您的预期输出来看,DFS(深度优先搜索)遍历似乎是一个不错的选择
这里需要注意的关键点是,随着我们向更深的方向移动,数量\t会增加。因此,深度与要放置的\t数量之间存在相关性
一种方法是在递归时使用一个深度变量,然后在执行之前多次插入结果字符串