递归导致堆栈溢出

递归导致堆栈溢出

  1. 产生原因:当递归深度过大时,不断的调用方法没有返回数据,每次调用都会将方法的临时变量封装为栈帧存入内存栈,等方法返回的时候才会出栈,所以就会出现一直入栈导致爆栈或者内存溢出的情况
  2. 解决办法:如果无法控制递归的深度,就要避免使用递归,可以采用循环+栈结构代替递归的方式
  3. 参考
    聊聊面试必考-递归思想与实战
    如何利用循环代替递归以防止栈溢出

你可能感兴趣的:(算法,算法,java)