递归思想

递归的基本思想:
  拆解问题
    1、把规模大的问题变成规模较小的同类型问题
    2、规模较小的问题又不断变成规模更小的问题
    3、规模到一定程度可以直接求出他的解。
  求解:
    1、由最小规模问题的解得出较大规模问题的解
    2、由较大规模问题的解得出规模更大问题的解
    3、最后得出原来的问题

链表的子结构是链表,二叉树的子结构还是二叉树,这些都适用于递归。

递归问题解决思路
1、明确函数功能
  先不要考虑里面的代码怎么写,首先要搞清楚这个函数是干什么用的,能完成什么功能。
2、明确子问题和问题的关系(明确第一次调用的函数与下一次调用的函数的关系)
3、明确递归基(边界问题)
  递归的过程中,子问题的规模在不断减少,当小到一定程度是可以直接得出它的解。
  寻找递归基,相当于是思考:问题规模小到什么程度可以直接得出解。


image.png

image.png

image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、概念 程序调用自身的编程技巧称为递归(recursion)。 递归做为一种算法在程序设计语言中广泛应用。 一个...
    jqboooo阅读 4,846评论 0 0
  • 其实树形菜单的问题我们其实很常见,平常权限管理中的菜单就是最好应用,及时记录下来,后面碰到类似的问题也能及时更好地...
    Apple_Boy阅读 544评论 0 1
  • 关键词:递归的思想、递归模型的一般表示法、递归函数 0. 递归的思想 递归是一种数学上分而自治的思想 将原问题分解...
    编程半岛阅读 405评论 0 0
  • 一、递归函数的理解 1、生活中的递归 “递归”在生活中的一个典例就是“问路”。如图小哥哥进入电影院后找不到自己的座...
    浮世万千吾爱有三阅读 398评论 0 0
  • 有关函数的编程思想 递归思想一递归函数 例1 考察一个最简单的函数 function f1($n){ echo $...
    周行知阅读 1,081评论 0 0