嗨,在这个递归方法中,我试图找到所有字谜并将其添加到列表中>但是当我运行此代码时会发生什么,它只是返回了很多空列表。
private List<List<String>> findAnagrams(LetterInventory words,
ArrayList<String> anagram, int max,
Map<String, LetterInventory> smallDict, int level, List<List<String>> result) {
ArrayList<String> solvedWord = new ArrayList<String>();
LetterInventory shell;
LetterInventory shell2;
if (level < max || max == 0) {
Iterator<String> it = smallDict.keySet().iterator();
while (it.hasNext()) {
String k = it.next();
shell = new LetterInventory(k);
shell2 = words;
if (shell2.subtract(shell) != null) {
anagram.add(k);
shell2 = words.subtract(shell);
if (shell2.isEmpty()) {
//System.out.println(anagram.toString()); it prints off fine here
result.add(anagram); // but doesnt add here
}
else
findAnagrams(shell2, anagram, max, smallDict, level + 1, result);
anagram.remove(anagram.size()-1);
}
}
}
return results;
}