《C++ 递归、搜索与回溯》第2-3题:合并两个有序链表,反转链表

《C++ 递归、搜索与回溯》第2-3题:合并两个有序链表,反转链表

🔥个人主页:Cx330🌸

❄️个人专栏:《C语言》《LeetCode刷题集》《数据结构-初阶》《C++知识分享》

《优选算法指南-必刷经典100题》《Linux操作系统》:从入门到入魔

《Git深度解析》:版本管理实战全解

🌟心向往之行必能至


🎥Cx330🌸的简介:


目录

前言:

2. 合并两个有序链表

算法原理(递归):

思路:

解法代码(C++):

博主手记(字体还请见谅哈):

3. 反转链表

算法原理(递归):

思路:

解法代码(C++):

博主手记(字体还请见谅哈):

结尾:


前言:

聚焦算法题实战,系统讲解三大核心板块:“精准定位最优解”——优选算法,“简化逻辑表达,系统性探索与剪枝优化”——递归与回溯,“以局部最优换全局高效”——贪心算法,讲解思路与代码实现,帮助大家快速提升代码能力

2. 合并两个有序链表

题目链接:

21. 合并两个有序链表 - 力扣(LeetCode)

题目描述:

题目示例:

算法原理(递归):
思路:
  1. 递归函数的含义:交给你两个链表的头结点,你帮我把它们合并起来,并且返回合并后的头结点;
  2. 函数体:选择两个头结点中较小的结点作为最终合并后的头结点,然后将剩下的链表交给递归函数去处理;
  3. 递归处理:当某一个链表为空的时候,返回另外一个链表。

注意: 链表的题一定要画图,搞清楚指针的操作!

解法代码(C++):
class Solution { public: ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) { if(list1==nullptr) return list2; if(list2==nullptr) return list1; if(list1->val<list2->val) { list1->next=mergeTwoLists(list1->next,list2); return list1; } else { list2->next=mergeTwoLists(list2->next,list1); return list2; } } };
博主手记(字体还请见谅哈):

总结:


3. 反转链表

题目链接:

206. 反转链表 - 力扣(LeetCode)

题目描述:

题目示例:

算法原理(递归):
思路:
  1. 递归函数的含义:交给你一个链表的头指针,你帮我逆序之后,返回逆序后的头结点;
  2. 函数体:先把当前结点之后的链表逆序,逆序完之后,把当前结点添加到逆序后的链表后即可;
  3. 递归处理:当前结点为空或者当前只有一个结点的时候,不用逆序,直接返回。

注意: 链表的题一定要画图,搞清楚指针的操作!

解法代码(C++):
class Solution { public: ListNode* reverseList(ListNode* head) { if(head==nullptr||head->next==nullptr) return head; ListNode*newhead=reverseList(head->next); head->next->next=head; head->next=nullptr; return newhead; } };
博主手记(字体还请见谅哈):

结尾:

总结:1、合并两个有序链表:通过递归比较节点值,将较小节点作为头结点,剩余部分继续递归处理;2、反转链表:递归到末尾节点后回溯,逐节点调整指针方向,两种解法均强调画图分析指针操作的重要性,并提供了完整的C++代码实现。专注于通过系统讲解优选算法、递归回溯和贪心算法等核心板块,帮助读者提升代码能力

Read more

Answer 开源平台搭建:cpolar 内网穿透服务助力全球用户社区构建

Answer 开源平台搭建:cpolar 内网穿透服务助力全球用户社区构建

文章目录 * 前言 * 1. 本地安装Docker * 2. 本地部署Apache Answer * 2.1 设置语言选择简体中文 * 2.2 配置数据库 * 2.3 创建配置文件 * 2.4 填写基本信息 * 3. 如何使用Apache Answer * 3.1 后台管理 * 3.2 提问与回答 * 3.3 查看主页回答情况 * 4. 公网远程访问本地 Apache Answer * 4.1 内网穿透工具安装 * 4.2 创建远程连接公网地址 * 5. 固定Apache Answer公网地址 前言 在开源社区运营中,问答平台的全球化访问始终面临双重挑战:一方面需要保障数据主权与隐私安全,另一方面要实现低延迟的跨地域访问。Answer

By Ne0inhk

国内外开源与闭源大模型清单

国内外开源与闭源大模型清单 国外 * 开源 * LLaMA 3.x(Meta):通用基座,覆盖多尺寸,生态完善。 * Mixtral 8x7B / Mixtral 22B(Mistral AI):MoE 架构,高效推理。 * Gemma 1–3(Google):轻量高效,适合端侧与研究。 * Phi 系列 1.5/3/3.5/4(Microsoft):小型高效,推理能力强化。 * DBRX(Databricks):开源 MoE,面向通用与数据工作负载。 * Nemotron‑4 340B(NVIDIA):超大参数,含 Base/Instruct/Reward

By Ne0inhk
我用 Python 写了个GitHub AI Agent,每天自动帮我挖掘 GitHub 热门项目,还能举一反三!

我用 Python 写了个GitHub AI Agent,每天自动帮我挖掘 GitHub 热门项目,还能举一反三!

前言 都 2026 年了,你还在每天手动刷 GitHub Trending 吗? 作为一个热衷于技术的开发者,每天早上都有个习惯:打开 GitHub Trending 看看今天全球的开发者都在搞什么新花样。但问题来了:信息过载:榜单上几十个项目,大部分是英文 README,读起来费劲。不知所云:有些项目介绍写得很晦涩,看了半天不知道它能解决什么痛点。看完就忘:刷完感觉很爽,但没有思考“这个项目能用在我的什么业务里?” 于是我突发奇想:为什么不让 AI 帮我读? 花了个周末,我开发了一个 GitHub Insight Agent。它能自动爬取热门项目,投喂给 DeepSeek/OpenAI 进行深度分析,还能举一反三地告诉我这个项目能用来做什么赚钱/提效,最后把整理好的“情报日报”推送到我的飞书/钉钉。 重点是:完全开源,完全免费(

By Ne0inhk
OpenCode:开源版Claude Code来了,附Windows客户端

OpenCode:开源版Claude Code来了,附Windows客户端

大家好,我是 Ai 学习的老章 今天给大家介绍一个我最近在用的 AI 编程神器 —— OpenCode。4.6万 Star,500+ 贡献者,每月被 65 万开发者使用。这货基本上就是开源版的 Claude Code,而且完全不绑定任何一家模型提供商! 简介 OpenCode 是一个 100% 开源的 AI 编程智能体,可以在终端、桌面应用或 IDE 里使用。 和 Claude Code 有什么区别?官方自己也说了: * 完全开源:代码全在 GitHub 上,想怎么改就怎么改 * 不绑定模型:Claude、GPT、Gemini、DeepSeek 甚至本地模型都能用,75+ 个 LLM

By Ne0inhk