代码已发布以供审核委员会审核。我的目的不是要求审查代码。
[迷宫]:https://codereview.stackexchange.com/questions/33155/maze-code-review
在上面的代码中,函数solve
什么也不做,只是提供一个堆栈对象(对堆栈类型对象的引用),该对象将由递归执行的代码使用。
由于模式如此之多,是否有一个仅辅助/或为递归调用进行设置的函数的名称?
如果是的话,有什么该做/不该做/的替代方案吗?
最佳答案
我认为你做得很好。每个递归算法的第一步都需要一些初始值。通常的做法是将此初始调用封装在另一个方法中,以便调用者不必费心处理这些值。
如果您的初始值设置起来比较复杂,您也可以将其封装在其他方法中。假设你的堆栈需要有一些内容而不是空的。你可以这样做:
public List<Coordinate> solve() {
return getMazePath(0, 0, getInitialStack());
}
这样,solve
方法就可以作为递归的入口点保持清晰和简单。
关于java - 为递归方法提供单个对象的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19557921/