修改 有人向我指出,实际上我需要逐步完成所有的递归以确保我达到终点,然后在我回到堆栈时开始收集值。我不知道这意味着什么。
我的目标是构建一个递归方法来构建迷宫中的路径,将该路径存储在Vector中,并在递归结束时返回它。
我的方法运行迷宫,但是我很难将列表存储在Vector中,因为我需要在每次递归时实例化它。
这是我的代码(已编辑):
frmMain
有没有一种方法我无法在每次递归时实例化我的Vector,所以我可以永久存储我的值?
非常感谢任何帮助。
答案 0 :(得分:1)
执行此操作的典型方法是委托另一个递归方法,并将列表作为参数填充:
public List<GameCell> findPath(int nRow, int nCol) {
List<GameCell> result = new ArrayList<>();
doFindPathRecursively(result, nRow, nCol);
return result;
}
private void doFindPathRecursively(List<GameCell> result, int nRow, int nCol) {
...
}
请注意,自Java 2以来,Vector实际上已被弃用,因此改为使用List和ArrayList。
答案 1 :(得分:0)
我找到了解决方案,在我找到路径后,我必须在我的列表中添加元素。这是解决方案。我仍然有一个错误,但我问的问题是固定的。
-r