这是一道多叉树的DFS遍历
其实你可以联想那个有一本书讲邻居芒果问题
都可以用DFS和BFS做
原理啥的其实一样的,只不过一个没递归一个有递归
原理都是对于每一个人都要查他的邻居
class Solution {
List<Integer> res = new ArrayList<>();
public List<Integer> lexicalOrder(int n) {
// 总共有 9 棵多叉树,从 1 开始
for (int i = 1; i < 10; i++) {
traverse(i, n);
}
return res;
}
// 多叉树遍历框架,前序位置收集所有小于 n 的节点
void traverse(int root, int n) {
if (root > n) {
return;
}
res.add(root);
for (int child = root * 10; child < root * 10 + 10; child++) {
traverse(child, n);
}
}
}