并不是所有的循环都能用递归代替。因为递归会增加额外的栈空间并且递归循环必须结束,否则会导致栈溢出。有些算法需要进行大量的重复递归计算以至于递归空间会变得非常大。
举个例子,如果要对一个文件夹下的所有文件进行操作,使用循环迭代可以很方便地实现;而使用递归的方式则会导致栈空间的增长,可能会引起堆栈溢出,不适合使用递归实现。
并不是所有的循环都能用递归代替。因为递归会增加额外的栈空间并且递归循环必须结束,否则会导致栈溢出。有些算法需要进行大量的重复递归计算以至于递归空间会变得非常大。
举个例子,如果要对一个文件夹下的所有文件进行操作,使用循环迭代可以很方便地实现;而使用递归的方式则会导致栈空间的增长,可能会引起堆栈溢出,不适合使用递归实现。