递归就是不断的调用自己示例:
茬计算机中函数调用时通过栈(stack)这种数据结构实现的,每当进入一个函数调用栈就会加一层栈帧,每当函数返回栈就会减一层栈帧。
甴于栈的大小不是无限的所以,递归调用的次数过多就会导致栈溢出。
尾递归优化
执行完一层调用下一层的时候,把这一层的数据给销毁掉,并且下一层和这一层没有关系叫尾递归。
阶乘不是尾递归 return num * factorial(num - 1) 因为num还在等着factorial(num - 1)的结果
需要有退出条件, 比如检查一段数據中是否有unicode字符
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。