作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有下面的树
1
2 3
4 5 6
7 8 9 0
现在我想遍历树中所有可能的路径。总是可以从下一行移动到相邻的数字。例如
1 2 4 7
或 1 2 5 8
有什么提示是最好的方法吗?我正在寻找一般提示,但在我的实现中,每一行都有一个 ArrayList。
最佳答案
我怀疑使用递归是最简单的方法。
有点像
public static void visit(List<List<Integer>> tree, Visitor<List<Integer>> visitor) {
visit0(tree, visitor, Collections.<Integer>emptyList());
}
private static void visit0(List<List<Integer>> tree,
Visitor<List<Integer>> visitor, List<Integer> list) {
if (tree.isEmpty()) {
visitor.onList(list);
return;
}
List<List<Integer>> tree2 = tree.subList(1, tree.size() - 1);
List<Integer> ints = new ArrayList<Integer>(list);
ints.add(0); // dummy entry.
for(int n: tree.get(0)) {
ints.set(ints.size()-1, n);
visit0(tree2, visitor, ints);
}
}
关于java - 如何遍历图表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5789580/
我是一名优秀的程序员,十分优秀!