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

链表---有序链表

个人主页Milestone-里程碑❄️个人专栏: 力扣hot100 CLinuxGitMySQL心向往之行必能至题目描述将两个升序的单链表合并为一个新的升序单链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的不允许额外创建新节点只能复用原节点。示例plaintext输入list1 [1,2,4], list2 [1,3,4] 输出[1,1,2,3,4,4]解题思路这道题是链表操作的经典入门题核心思路是双指针遍历 哨兵节点哑节点双指针同时遍历两个有序链表每次比较两个指针指向节点的值将较小的节点接入新链表哨兵节点创建一个临时虚拟节点避免处理头节点为空的边界情况让代码更简洁拼接剩余节点当其中一个链表遍历完毕后直接将另一个链表的剩余部分接到结果链表尾部。整个过程时间复杂度 O (nm)n、m 为两个链表长度每个节点仅遍历一次空间复杂度 O (1)仅使用常数个临时指针。完整代码解析我直接给出最优解代码逐行讲解每一步的作用cpp运行/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), next(next) {} * }; */ class Solution { public: ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) { ListNode temp; // 1. 哨兵节点哑节点不存储实际数据仅用于简化头节点处理 ListNode* cur temp;// 2. 工作指针始终指向结果链表的最后一个节点 // 3. 同时遍历两个链表直到其中一个遍历完毕 while (list1 list2) { // 比较节点值将较小的节点接到结果链表尾部 if(list1-val list2-val) { cur-next list1; list1 list1-next; // 移动原链表指针 } else { cur-next list2; list2 list2-next; } cur cur-next; // 移动工作指针始终指向新链表尾部 } // 4. 拼接剩余节点一个链表空了直接接另一个的剩余部分 cur-next list1 ? list1 : list2; // 5. 哨兵节点的next就是最终合并后的链表头节点 return temp.next; } };核心知识点详解哨兵节点temp作用解决「新链表头节点为空」的边界问题不用单独判断第一个节点该选谁最终返回temp.next就是合并后链表的真实头节点。工作指针cur始终跟踪结果链表的末尾方便后续节点直接拼接不用每次遍历找尾部。循环逻辑只有list1和list2都不为空时才进入循环每次取较小值节点接入保证新链表始终有序。剩余节点拼接因为两个原链表都是有序的剩余部分一定是递增的直接拼接即可无需再排序。代码运行演示以list1[1,2,4]、list2[1,3,4]为例初始temp - nullcurtemplist11list21第一次比较11取 list2temp-1-3-4cur1list23第二次比较13取 list1temp-1-1-2-4cur1list12第三次比较23取 list1temp-1-1-2-4cur2list14第四次比较43取 list2temp-1-1-2-3-4cur3list24第五次比较44取 list2temp-1-1-2-3-4-4cur4list2null退出循环拼接 list1 剩余节点已空最终返回temp.next。为什么推荐这个写法极简高效无冗余代码时间 / 空间复杂度均为最优无边界问题哨兵节点完美处理空链表、单节点链表等特殊情况易读易写逻辑清晰面试手写代码几乎不会出错。总结合并两个有序链表是链表基础操作核心掌握两点✅双指针遍历比较取值✅哨兵节点简化边界处理这个解法是面试高频标准答案吃透它链表基础操作就稳了

相关文章:

链表---有序链表

&#x1f525;个人主页&#xff1a;Milestone-里程碑 ❄️个人专栏: <<力扣hot100>> <<C>><<Linux>> <<Git>><<MySQL>> &#x1f31f;心向往之行必能至 题目描述 将两个升序的单链表合并为一个新的升序单链表…...

如何使用Calibre构建高效电子书管理系统:从架构解析到实战应用

如何使用Calibre构建高效电子书管理系统&#xff1a;从架构解析到实战应用 【免费下载链接】calibre The official source code repository for the calibre ebook manager 项目地址: https://gitcode.com/GitHub_Trending/ca/calibre Calibre是一款功能强大的开源电子书…...

PSVita掌机玩转暗黑破坏神:DevilutionX移植版终极指南

PSVita掌机玩转暗黑破坏神&#xff1a;DevilutionX移植版终极指南 【免费下载链接】devilutionX Diablo build for modern operating systems 项目地址: https://gitcode.com/gh_mirrors/de/devilutionX DevilutionX是一款专为现代操作系统打造的暗黑破坏神&#xff08;…...

现代服务器管理新范式:mdserver-web面板技术深度解析

现代服务器管理新范式&#xff1a;mdserver-web面板技术深度解析 【免费下载链接】mdserver-web Simple Linux Panel 项目地址: https://gitcode.com/GitHub_Trending/md/mdserver-web mdserver-web是一款简单Linux面板服务&#xff0c;它以直观的Web界面和插件化架构重…...

Code Surfer终极指南:打造惊艳的交互式代码演示

Code Surfer终极指南&#xff1a;打造惊艳的交互式代码演示 【免费下载链接】code-surfer Rad code slides <&#x1f3c4;/> 项目地址: https://gitcode.com/gh_mirrors/co/code-surfer Code Surfer 是一款强大的开源工具&#xff0c;专为创建交互式代码演示而设…...

DIG图神经网络框架终极指南:从入门到实战应用

DIG图神经网络框架终极指南&#xff1a;从入门到实战应用 【免费下载链接】DIG A library for graph deep learning research 项目地址: https://gitcode.com/gh_mirrors/dig/DIG DIG&#xff08;Dive into Graphs&#xff09;是一个强大的图深度学习研究库&#xff0c;…...

终极音频分离工具快速部署指南:从零到专业级处理

终极音频分离工具快速部署指南&#xff1a;从零到专业级处理 【免费下载链接】ultimatevocalremovergui 使用深度神经网络的声音消除器的图形用户界面。 项目地址: https://gitcode.com/GitHub_Trending/ul/ultimatevocalremovergui Ultimate Vocal Remover GUI 是一款基…...

Claude Code Router终极指南:零基础打造智能AI工作流

Claude Code Router终极指南&#xff1a;零基础打造智能AI工作流 【免费下载链接】claude-code-router Use Claude Code without an Anthropics account and route it to another LLM provider 项目地址: https://gitcode.com/GitHub_Trending/cl/claude-code-router Cl…...

电商供应链履约中台架构与业务全流程解析

一、系统概述 本文章解析的是一套支持多业务模式&#xff08;B2C / C2C / 跨境&#xff09;的电商供应链履约中台&#xff0c;核心定位是承接前端交易&#xff08;商品、订单&#xff09;与后端仓储物流&#xff0c;实现 “商品上架 → 订单履约 → 仓储调度 → 物流配送” 的…...

MGeo中文地址解析实战:地址文本脱敏(门牌号掩码/敏感词过滤)

MGeo中文地址解析实战&#xff1a;地址文本脱敏&#xff08;门牌号掩码/敏感词过滤&#xff09; 你是不是也遇到过这样的烦恼&#xff1f;公司业务系统里&#xff0c;用户填写的地址信息五花八门&#xff0c;有的包含了详细的“XX小区X栋X单元XXX室”&#xff0c;有的则只写了…...

lychee-rerank-mm效果实测:中英文混合查询词下模型语义理解能力验证

lychee-rerank-mm效果实测&#xff1a;中英文混合查询词下模型语义理解能力验证 1. 测试背景与目的 在当今多模态AI快速发展的时代&#xff0c;图文匹配和重排序技术正成为智能内容管理的关键能力。lychee-rerank-mm作为一个基于Qwen2.5-VL架构的专用重排序模型&#xff0c;针…...

详解模型训练原理(梯度下降法)

学习机器学习非常重要的一步就是弄清模型训练背后的原理。接下来我给大家详细讲一讲基于梯度下降法的模型训练过程。 在开始之前&#xff0c;先解释一下损失函数&#xff1a; 训练样本输入模型后产生的输出值和&#xff08;该样本的&#xff09;真实值往往会有差异&#xff0c;…...

前端 Clean Architecture 架构详解:从理论到 Todo 项目落地

一、概述 整洁架构 Clean Architecture 由 Robert C. Martin&#xff08;“Uncle Bob”&#xff09; 提出&#xff0c;是一种以 “业务逻辑中心化、外部依赖解耦” 为核心的软件架构设计方法。它通过分层设计 单向依赖规则&#xff0c;将业务逻辑与框架、UI、数据源等外部元素…...

乙巳马年春联生成终端教育场景:AI对联创作比赛评分系统

乙巳马年春联生成终端教育场景&#xff1a;AI对联创作比赛评分系统 1. 引言&#xff1a;当传统文化遇见AI&#xff0c;一场别开生面的创作比赛 想象一下&#xff0c;在一所学校的礼堂里&#xff0c;学生们围坐在电脑前&#xff0c;他们不是在玩游戏&#xff0c;而是在参加一场…...

OneAPI API网关限流熔断:支持QPS/并发数/令牌桶三级限流,防止下游模型过载

OneAPI API网关限流熔断&#xff1a;支持QPS/并发数/令牌桶三级限流&#xff0c;防止下游模型过载 你是不是遇到过这种情况&#xff1a;自己搭建的大模型服务&#xff0c;平时用着好好的&#xff0c;突然有一天访问量激增&#xff0c;服务器直接卡死&#xff0c;所有请求都超时…...

Ostrakon-VL-8B效果展示:高视觉复杂度下精准识别店铺名的真实问答案例集

Ostrakon-VL-8B效果展示&#xff1a;高视觉复杂度下精准识别店铺名的真实问答案例集 1. 引言&#xff1a;当AI走进街头巷尾 想象一下&#xff0c;你走在一条繁华的商业街上&#xff0c;两边店铺林立&#xff0c;招牌五花八门。有的招牌字体花哨&#xff0c;有的被绿植遮挡&am…...

多模态预演:all-MiniLM-L6-v2文本Embedding如何为多模态系统打基础

多模态预演&#xff1a;all-MiniLM-L6-v2文本Embedding如何为多模态系统打基础 1. 认识all-MiniLM-L6-v2&#xff1a;轻量级语义表示专家 all-MiniLM-L6-v2是一个专门为高效语义表示设计的轻量级句子嵌入模型。它基于BERT架构&#xff0c;但通过精巧的设计实现了性能与效率的…...

Clawdbot惊艳效果展示:Qwen3:32B在中文长文本摘要与结构化提取中的精度

Clawdbot惊艳效果展示&#xff1a;Qwen3:32B在中文长文本摘要与结构化提取中的精度 1. 效果亮点抢先看 如果你正在寻找一个能够真正理解中文长文本的AI工具&#xff0c;Clawdbot整合Qwen3:32B的表现绝对会让你惊喜。这个组合在中文长文本处理上展现出了令人印象深刻的精度&am…...

Step3-VL-10B在教育场景落地:STEM题图解析与代码逻辑推理实战

Step3-VL-10B在教育场景落地&#xff1a;STEM题图解析与代码逻辑推理实战 1. 引言&#xff1a;当AI遇到教育难题 想象一下这个场景&#xff1a;一位中学物理老师正在准备明天的课程&#xff0c;他需要从网上找一张电路图来讲解并联电路。找到图片后&#xff0c;他不仅要自己理解…...

PETRV2-BEV训练惊艳效果:car类ATE仅0.626,BEV空间定位误差低于0.7米

PETRV2-BEV训练惊艳效果&#xff1a;car类ATE仅0.626&#xff0c;BEV空间定位误差低于0.7米 本文详细记录了在星图AI算力平台上训练PETRV2-BEV模型的完整过程&#xff0c;展示了该模型在nuScenes数据集上的惊人效果——car类别的平均平移误差(ATE)仅为0.626米&#xff0c;BEV空…...

文脉定序在时效性检索中的应用:新闻事件热度加权重排序方案

文脉定序在时效性检索中的应用&#xff1a;新闻事件热度加权重排序方案 1. 理解时效性检索的核心挑战 在信息爆炸的时代&#xff0c;新闻检索面临着一个关键难题&#xff1a;如何在海量信息中不仅找到相关内容&#xff0c;还要确保结果的时效性和重要性。传统搜索引擎往往只能…...

Nano-Banana软萌拆拆屋效果展示:旗袍盘扣/滚边/开衩部位精细化呈现

Nano-Banana软萌拆拆屋效果展示&#xff1a;旗袍盘扣/滚边/开衩部位精细化呈现 1. 引言&#xff1a;当AI遇见传统美学 想象一下&#xff0c;一件精美的旗袍&#xff0c;它的盘扣、滚边、开衩&#xff0c;这些凝聚了匠心的细节&#xff0c;如果能像乐高积木一样被“拆开”&…...

Qwen3-0.6B-FP8保姆级教程:修复Chainlit CORS错误、WebSocket连接失败等高频问题

Qwen3-0.6B-FP8保姆级教程&#xff1a;修复Chainlit CORS错误、WebSocket连接失败等高频问题 你是不是也遇到过这种情况&#xff1a;好不容易用vLLM把Qwen3-0.6B-FP8模型部署好了&#xff0c;打开Chainlit前端准备大展身手&#xff0c;结果页面一片空白&#xff0c;浏览器控制…...

EasyAnimateV5-7b-zh-InP参数详解:Sampling Method(Flow算法)原理与选型

EasyAnimateV5-7b-zh-InP参数详解&#xff1a;Sampling Method&#xff08;Flow算法&#xff09;原理与选型 1. 理解Sampling Method在视频生成中的重要性 当你使用EasyAnimateV5-7b-zh-InP模型生成视频时&#xff0c;Sampling Method&#xff08;采样方法&#xff09;可能是…...

gemma-3-12b-it实操手册:上传图片+提问→获取结构化分析结果全流程

Gemma-3-12b-it实操手册&#xff1a;上传图片提问→获取结构化分析结果全流程 你是不是遇到过这样的场景&#xff1a;拿到一张复杂的图表、一份产品设计图&#xff0c;或者一张充满细节的风景照&#xff0c;想快速了解其中的关键信息&#xff0c;却需要花大量时间去观察、分析…...

Qwen3-ForcedAligner-0.6B部署教程:低配GPU(8GB显存)上的轻量级运行方案

Qwen3-ForcedAligner-0.6B部署教程&#xff1a;低配GPU&#xff08;8GB显存&#xff09;上的轻量级运行方案 你是不是遇到过这样的问题&#xff1f;手里有一段音频和对应的文字稿&#xff0c;需要给每个字、每个词打上精确的时间戳&#xff0c;用来做字幕或者语音分析。手动操…...

AWPortrait-Z WebUI界面深度解读:输入/输出/历史三区协同操作逻辑

AWPortrait-Z WebUI界面深度解读&#xff1a;输入/输出/历史三区协同操作逻辑 1. 引言&#xff1a;一个高效的人像美化工作台 如果你用过一些AI绘画工具&#xff0c;可能会遇到这样的困扰&#xff1a;左边是密密麻麻的参数设置&#xff0c;右边是生成结果的预览&#xff0c;中…...

Cogito 3B真实输出:从模糊业务需求到数据库ER图+SQL Schema+API设计

Cogito 3B真实输出&#xff1a;从模糊业务需求到数据库ER图SQL SchemaAPI设计 1. 快速了解Cogito 3B模型 Cogito v1预览版是Deep Cogito推出的混合推理模型&#xff0c;这个3B参数的模型在大多数标准测试中都表现出色&#xff0c;超越了同等规模的其他开源模型。简单来说&…...

DeepSeek-R1-Distill-Qwen-1.5B实操手册:Streamlit组件封装+可复用AI对话模块开发

DeepSeek-R1-Distill-Qwen-1.5B实操手册&#xff1a;Streamlit组件封装可复用AI对话模块开发 1. 项目概述 DeepSeek-R1-Distill-Qwen-1.5B是一个完全本地化部署的智能对话系统&#xff0c;基于魔塔平台下载量最高的超轻量蒸馏模型构建。这个模型巧妙融合了DeepSeek优秀的逻辑…...

UDOP-large多场景适配:支持Prompt工程灵活扩展至新文档类型识别任务

UDOP-large多场景适配&#xff1a;支持Prompt工程灵活扩展至新文档类型识别任务 1. 引言&#xff1a;当文档处理遇上“万能钥匙” 想象一下&#xff0c;你手头有一堆来自不同渠道的文档&#xff1a;英文的学术论文、海外的发票、复杂的实验数据表格。你需要快速从这些五花八门…...