199. 二叉树的右视图
给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
例子
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
示例:
输入:"23"
输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].
代码
class Solution {
List<String> l = new LinkedList<String>();
private String[] s = new String[]{"abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
public List<String> letterCombinations(String digits) {
dfs(digits,0,new StringBuffer());
return l;
}
public void dfs(String digits,int index,StringBuffer sb){
//1. 截止条件
if(digits.length() == 0){
return;
}
if(index == digits.length()){
l.add(sb.toString());
return;
}
//2. 遍历候选结点
//2.1 筛选
for(char ch:s[digits.toCharArray()[index]-'0'-2].toCharArray()){
sb.append(ch);
dfs(digits,index + 1,sb);
sb.deleteCharAt(sb.length() - 1);
}
}
}
思路
1.找出截止条件
2.遍历候选结点
2.1筛选 这题不用筛选 属于比较容易的