在函数递归调用这一块,很多小伙伴都容易犯迷糊,其实只要关键的一句理解了,那就 noproblem ,today 拿力扣上的一个数据结构题说一下!

class Solution {public:vector<int> reversePrint(ListNode* head) {recur(head);return res;}private:vector<int> res;void recur(ListNode* head) {if (head == nullptr) return;recur(head->next);res.push_back(head->val);}};int main()
{//创建链表ListNode *n1 = new ListNode(1);                      // 节点 headListNode *n2 = new ListNode(3);ListNode *n3 = new ListNode(2);//  需要构建引用指向n1->next = n2;n2->next = n3;Solution obj;vector<int> v1 = obj.reversePrint(n1);                //形参为指针时,传入的参数为地址for (vector<int>::iterator it = v1.begin(); it != v1.end(); it++){cout << *it << ' ';}cout << endl;system("pause");return 0;
}输出结果:2 3 1

关键句也即是第15行,recur(head->next); 只有输入的 head->next 节点为空时,该句执行结束后,才会执行同一等级中的下一条语句(res.push_back(head->val);),然后逐层回溯。只要此处理解了,所谓递归调用也是 so easy!

【C++】递归调用——难点揭秘相关推荐

  1. python 递归调用

    2019独角兽企业重金招聘Python工程师标准>>> 解决递归调用栈溢出的方法是通过尾递归优化,事实上尾递归和循环的效果是一样的,所以,把循环看成是一种特殊的尾递归函数也是可以的. ...

  2. with as递归调用

    一.递归调用--在代码中偶尔看到以记之,便于下次学习 https://blog.csdn.net/johnf_nash/article/details/78681060 --查询节点及其下所有子节点 ...

  3. 编写递归调用的Lambda表达式

    前段时间,我写一个树的访问算法的时候,用了Visitor模式把访问的算法分离了出来,当时打算用lambda表达式写visit算法的,却发现带递归调用的lambda表达式没想象的那么好写,憋了半天愣是没 ...

  4. SSM 返回静态页面HTML Controller 被递归调用引起的StackOverflowError

    一 背景 最近在做工程实践,想实现这么一个效果: 前端url请求地址:localhost:8080/idevtools/search 后端返回一个静态页面HTML:search.html 按照网上说的 ...

  5. return 和 方法的递归调用

    return语句直接结束方法 方法的递归调用: 递归调用是一种特殊的调用形式,是方法自己调用自己,如图所示: 例子:完成数字的累加操作,除了循环操作以外还可以使用递归调用: 代码: package W ...

  6. Python函数的递归调用

    一:递归的定义 函数的递归调用:是函数嵌套调用的一种特殊形式 具体是指: 在调用一个函数的过程中又直接或者间接地调用到本身 # 直接调用本身 def f1():print('是我是我还是我')f1() ...

  7. 方法的定义使用,方法重载及方法的递归调用

    方法 1.方法的定义与使用 2.方法的重载 3.方法的递归调用 3.1栈溢出 1.方法的定义与使用 定义一个没有参数值,没有返回值的方法 定义一个有参数无返回值的方法 定义 有返回值,有参数的方法 p ...

  8. C语言程序设计 函数递归调用示例

    函数递归调用示例(教材习题5.3,运行结果012345) #include<stdio.h> void fun(int k); void main() {   int w=5;   fun ...

  9. 如何用堆栈和循环结构代替递归调用--递归转换为非递归的10条军规

    10 Rules (steps) for replacing the recursive function with stack and while-loop 转自http://www.codepro ...

最新文章

  1. jQuery源码学习之Callbacks
  2. IE条件注释和CSS Hacks
  3. 如何优雅的研究 RGSS3 (七) 加入LOGO屏幕
  4. 如何设计订单系统?不妨看看这篇文章
  5. 【IT笔试面试题整理】给定二叉树,给每层生成一个链表
  6. C 运算符中不能重载的是哪些
  7. div动态消失的动画效果
  8. java 内存机制(堆和栈),内存地址
  9. centos图形界面,vncserver
  10. JavaIO流实现文件传输
  11. 儿童python编程书籍推荐_推荐给家长们的《趣学Python——教孩子学编程》书
  12. HTML 盒子模型( box-sizing: border-box)
  13. 在线对数函数计算机,对数函数计算器
  14. 水星怎么设置网速最快_水星路由器怎么设置限速(分配合理网速)设置教程图解...
  15. 使用Cluster API提供裸金属Kubernetes
  16. 用linux模拟彩票摇号器下载,大乐透模拟摇奖器拟选号器
  17. Java的各个应用平台
  18. arbiter circuit(以Verilog FSM实现仲裁器)
  19. 相似图片搜索原理一(ahash—c++实现)
  20. java冰雹数10_生成的新的数字再执行同样的动作, 循环往复.

热门文章

  1. 第3关:花式索引与布尔索引
  2. 2017计算机应用基础统考,计算机应用基础统考练习题「附答案」
  3. 【go语言 socket编程系列】net.DialTCP、net.DIalUDP与net.Dial
  4. js php 手机验证码代码怎么写,JS实现简单短信验证码界面
  5. Android课后习题(第四章)
  6. Oracle数据库将时间戳转换成年月日时分秒格式
  7. illusion, disillusion and disillusionment
  8. DNS的详细解析过程
  9. c语言银行卡管理系统实验报告,C++编写的简单银行卡管理系统
  10. 视频直播app源码,底部动画导航栏