可能重复:
Can every recursion be converted into iteration?例子只能是递归
是否有其中一个必须使用递归的问题,有没有办法做到这一点反复?例如删除子文件夹内的文件。
public static boolean deleteFile(String sFilePath)
{
File oFile = new File(sFilePath);
if(oFile.isDirectory())
{
File[] aFiles = oFile.listFiles();
for(File oFileCur: aFiles)
{
deleteFile(oFileCur.getAbsolutePath());
}
}
return oFile.delete();
}
,我们必须手之前知道文件夹的许多水平如何,实际上那里,如果我们引入一个新的子文件,我们将不得不改变我想不出的一个以上的迭代版本代码。是否有可能以这种方式制作上述代码的迭代版本,以便将来不需要更改代码?
取决于是否要执行什么样的提问* *说(“删除所有文件”),或者是提问者的代码*不*(“删除所有文件和目录”)。 – 2011-04-30 09:23:47