了解数据结构的人都知道, 树结构本身就是用递归定义的,所以解决树相关的问题会优先考虑递归
什么是尾递归?...众所周知, 递归会记录上一个函数的调用状态, 造成大量的资源占用, 为了尽量减少资源的占用, 有了为递归的玩法, 就是把递归操作放到 return 内, 由于return 是函数的最后一句, 所以, 就可以减少记录函数体的空间...console.log("普通递归|第",new_num,"次调用")
recursion(new_num)
}
recursion(1)
尾递归写法 (直接将函数调用return出去 )
/...console.log("尾递归|第",new_num,"次调用")
return recursion2(new_num)
}
recursion2(1)
尾递归节约了递归过程中压栈的内存消耗..., 但这种玩法并不能突破递归栈的限制(python约为1000次, Chrome js环境约为20000次), 函数recursionreturn 自身之后 并没有析构释放空间,
为了验证以上说法,这里用