递归:先要把递归出口写出来,
1:递归终结条件;2:处理当前层逻辑;3:下探到下一层;4:清理当前层。
上图是递归结构代码的4个模块。第一个模块:recursion terminator 递归终结者。(这一点不注意的话会造成无限循环。)所以上来先把递归终结者模块写好。第二个模块:process logic in current level 处理当前层逻辑。(在这一层就要把处理逻辑写好,就是要完成这一层进行的业务代码和逻辑代码。)第三个模块:drill down 下探到下一层。(这一层是通过参数标记当前是哪一层)第四个模块:reverse...... (这一层就是递归完了的话,这一层可能需要清理,因为有的时候需要清理一下环境,比如一些全局变量之类的,如果没有就不用写这一层了。)