设计一个递归函数, 考虑三个方面: 参数、 中间量、返回值
参数: 设计递归表达式中包含的关键东西, 每一次调用,只有参数在改变。
中间量:中间每次调用时,会在一个新的栈中存储,他在内存上和上次的变量是两块独立的空间,他们的行为只依赖于参数的变化。
返回值: 需要所有过程共同的return值来完成。
每一次函数调用,都有一个独立的函数栈空间, 理解好这个就可以更好的理解递归。
1 | new_str = [] // 返回值 |
之前在遍历子路径时没想明白, 就在于我没有理解好每一次调用变量都存在独立的站。在递归返回上一级的时候,父函数在工作环境中继续施工,所以之前的内容都在。哈哈哈真的是,太菜了
(这里的new_str不写在递归区域, 因为new_str是返回值,所以不能每个过程都开一个新的,而是每次都将结果压入一个共同的空间中)