我正在尝试创建一个返回字符串链接列表的方法。有一棵树,树中的每个节点都存储一个字符。该方法被认为是通过树找到所有可能的路径。每条路径创建一个字符串,并将其添加到列表中。
在第二个for循环中似乎有一个我无法解决的问题。该方法仅返回在第一个if语句中添加的字符。
每个节点都包含变量childList和nodevalue,前者是子节点的链表,后者是节点存储的字符。
public LinkedList<String> findStrings() {
LinkedList<String> paths = new LinkedList<String>();
//add character to list if there are no children
if (childList.isEmpty()){
paths.add("" + nodevalue);
return paths;
}
//use recursion to add paths from all children to the list
for (TreeNode t : childList){
paths.addAll(t.findStrings());
//add nodevalue to the beginning of all strings in the list
for (String s : paths){
s = nodevalue + s;
}
}
for (String s : paths) System.out.println(s); //for debugging
return paths;
}发布于 2012-11-15 14:35:20
增强的for循环在这里帮不上忙。
你将不得不使用传统的方法,如下所示:
for (int i=0; i<paths.size(); i++){
paths.set(i, paths.get(i) + paths.get(i));
}这里:public E set(int index, E element)
https://stackoverflow.com/questions/13392515
复制相似问题