当前位置: 首页 > news >正文

[ 3分钟算法 ] | 递归搜索题目 : 合并两个有序链表(递归版)

目录

1. 题目链接:

2. 思路分析:

1. 重复子问题?

2. 具体子问题?

3. 递归出口?

3. 代码实现:

4. 小结:

1. 循环(迭代)  vs  递归

2. 递归  vs  深搜


1. 题目链接:

21. 合并两个有序链表

题意:给两个升序的链表,将这两个链表合并成一个新的升序的链表。

2. 思路分析:

使用递归解决问题,最重要的一点是:找到重复子问题。我们分成3个步骤来说:

1. 重复子问题?

2. 具体子问题?

1. 比较L1和L2指向的节点谁更小?(假设L1更小)

2. L1->next = def(Node *L1->next, Node *L2);

3. return L1;

3. 递归出口?

当一个指针指向为NULL的时候,返回另一个指针所指向的节点。

3. 代码实现:

4. 小结:

1. 循环(迭代)  vs  递归

递归的核心:找到重复的子问题

循环的目的:解决重复的问题

我们发现他们这两个解决的是同样的问题,那么就证明他们的代码是可以相互转换的!

但有时候我们发现他们之间代码转换是很麻烦的!(怎么弄?下面说)

2. 递归  vs  深搜

当递归的展开图顺序,是一个树的深度优先遍历的顺序的时候,我们知道,树的深度优先遍历是要借助栈的,所以这时候使用递归来实现就会方便一点。

当递归的展开图顺序,是一个链表的时候,将递归代码转为循环代码可能相对容易一些。比如遍历数组。

http://www.dtcms.com/a/107035.html

相关文章:

  • C++虚继承及其它特性
  • 智谱发布AI Agent“AutoGLM沉思”,开启AI“边想边干”新时代
  • k8s之Ingress讲解
  • 定制化自己的 RAG 框架:结合 LlamaIndex 与自定义优化
  • c加加学习之day01
  • 解锁Azure Speech “通话转录音分析”功能,驶向服务升级高速路
  • 深度解析 Hive Reduce 数量配置:优化原则与计算公式实战指南
  • TISAX认证是什么?如何获得TISAX认证?对企业发展的好处
  • 尚硅谷shell脚本学习
  • DeepSeek+SpringAI家庭AI医生
  • 高压线防外破警示灯:让隐患无处遁形!/ 恒峰智慧科技
  • mapbox基础,加载hillshade山体阴影图层
  • Docker内网部署前后端分离项目-Windows环境下
  • 代码调试:VS调试实操
  • 民安智库:物业满意度调查是了解业主需求的关键工具
  • spring boot集成reids的 RedisTemplate 序列化器详细对比(官方及非官方)
  • 谷粒微服务高级篇学习笔记整理---thymeleaf
  • Kafka、RocketMQ、Pulsar对比
  • Linux 文件系统超详解
  • Java中的LocalDate类
  • 关于登录鉴权session、cookie和token
  • KMstation商品库存监控下单
  • neo4j+django+deepseek知识图谱学习系统对接前后端分离前端vue
  • angular实现连连看
  • 蓝桥杯练习:二叉树的最大深度
  • 系统与网络安全------Windows系统安全(6)
  • niuhe插件, 在 go 中渲染网页内容
  • 基于React + Antd + Java的OFD文件上传预览实现方案(OFD文件转图片)
  • 删除和关闭 Solana 中的账户和程序
  • Linux网络相关概念和重要知识(4)(序列化和反序列化、TCP协议、会话和守护进程)