建议将递归树画出来,并用全局变量保存结果,比较清晰
import java.util.ArrayList;
import java.util.List;
public class Solution {
String[] phoneNumber = {
"","","abc","def",
"ghi","jkl","mno",
"pqrs","tuv","wxyz",
};
List<String> res = new ArrayList<>();
public List<String> letterCombinations(String digits) {
helper(digits,0,new StringBuilder());
return res;
}
public void helper(String digits, int numIndex, StringBuilder stringBuilder){
if(numIndex>=digits.length()) {
res.add(stringBuilder.toString());
return;
}
int index = digits.charAt(numIndex) - '0';
String str = phoneNumber[index];
for(int i=0;i<str.length();i++){
stringBuilder.append(str.charAt(i));
helper(digits,numIndex+1,stringBuilder);
stringBuilder.deleteCharAt(stringBuilder.length()-1);
}
}
}