经典算法题---链表奇偶重排(好题)双指针系列
我听别人说这世界上有一种鸟是没有脚的,它只能够一直的飞呀飞呀,飞累了就在风里面睡觉,这种鸟一辈子只能下地一次,那一次就是它死亡的时候。——《阿甘正传》

这一文章讲解链表的奇偶排序问题,这是一道不难但是挺好的链表题目,有一些题目就是基于奇偶排序拓展出来的。
目录:
一.原题
二.双指针在链表中的应用
三.具体思路与做法
四.具体代码
一.原题
接下来给出原题,以供大家思考:

二.双指针在链表中的应用

双指针的作用:由于单向链表(如上图)的每一个指针只能从头往后扫描,并不能从后往前的这一个局限性。所以,我们在解决单向链表的题目上,引入双指针。双指针指的是在遍历对象的过程中,不是普通的使用单个指针进行访问,而是使用两个指针(特殊情况甚至可以多个),两个指针或是同方向访问两个链表,或是同方向访问一个链表(快慢指针)、或是相反方向扫描(对撞指针),从而建立一种手段,让这种手段为我们的目的服务。
三.具体思路与做法
1.具体思路:
ps:odd 奇数 ; even偶数
设:odd=head;(odd指向head也即结点1)
even=head->next;(even指向结点2)
xianjie=head->next(用来连接两个奇偶链表)
如下图所示,第一个结点是奇数位,第二个结点是偶数,第二个结点后又是奇数位。因此可以断掉结点1和结点2之间的连接,让结点1指向结点2的后面即结点3。代码也即(odd->next=even),如红色箭头。如果此时我们将第一个结点指向第三个结点,代码也即(odd=odd->next),就可以得到那么第三个结点后为偶数结点,因此我们又可以断掉结点2到结点3之间的连接,指向结点3后一个结点即结点4,代码也即(even->next=odd->next)如蓝色箭头。那么我们再将第二个结点指向第四结点,代码也即(even=even->next),接下来就是循环这一整个步骤,直到快指针(odd为NULL)。

2.具体做法:
step 1:判断空链表的情况,如果链表为空,不用重排。
step 2:使用双指针odd和even分别遍历奇数节点和偶数节点,并给偶数节点链表一个头。
step 3:上述过程,每次遍历两个节点,且even在后面,因此每轮循环用even检查后两个元素是否为NULL,如果不为再进入循环进行上述连接过程。
step 4:将偶数节点头接在奇数最后一个节点后,再返回头部。
四.具体代码
ListNode* oddEvenList(ListNode* head) {//边界治理if (head == nullptr || head->next == nullptr)return head;ListNode* odd = head;ListNode* even = head->next;ListNode* xianjie = head->next;while (even->next != nullptr && even != nullptr) {odd->next = even->next;odd = odd->next;even->next = odd->next;even = even->next;}odd->next = xianjie;//奇数的最后一个结点指向第二个结点(偶数结点)形成奇偶序列return head;}};
大家加油。。。。。最近在做算法题目考研关注我,点个赞,有问题可以一起讨论。以后的几篇文章都讲解链表题目。
相关文章:
经典算法题---链表奇偶重排(好题)双指针系列
我听别人说这世界上有一种鸟是没有脚的,它只能够一直的飞呀飞呀,飞累了就在风里面睡觉,这种鸟一辈子只能下地一次,那一次就是它死亡的时候。——《阿甘正传》这一文章讲解链表的奇偶排序问题,这是一道不难但是挺好的链…...
数据仓库实战
目录1、最佳实战1.1 表的分类1.2 ETL策略1.3 任务调度2、项目实战2.1 项目概述2.2 数据描述2.3 架构设计2.4 环境搭建2.5 项目开发1、最佳实战 1.1 表的分类 维度建模中表的类型:事实表和维度表 事实表又可以分为:事务事实表、周期快照事实表、累积快照…...
GPT系列:GPT, GPT-2, GPT-3精简总结 (模型结构+训练范式+实验)
😄 花一个小时快速跟着 人生导师-李沐 过了一遍GPT, GPT-2, GPT-3。下面精简地总结了GPT系列的模型结构训练范式实验。 文章目录1、GPT1.1、模型结构:1.2、范式:预训练 finetune1.3、实验部分:2、GPT-22.1、模型结构2.2、范式:预…...
ASE12N65SE-ASEMI高压MOS管ASE12N65SE
编辑-Z ASE12N65SE在ITO-220AB封装里的静态漏极源导通电阻(RDS(ON))为0.68Ω,是一款N沟道高压MOS管。ASE12N65SE的最大脉冲正向电流ISM为48A,零栅极电压漏极电流(IDSS)为10uA,其工作时耐温度范围为-55~150摄氏度。ASE…...
centos8防火墙命令配置(开放端口)
查看防火墙状态:(root用户)firewall-cmd –state启动防火墙:(root用户)systemctl start firewalld.service查看防火墙开放端口:(root用户) firewall-cmd --list-ports …...
Instagram营销教程_编程入门自学教程_菜鸟教程-免费教程分享
教程简介 Instagram营销初学者教程 - 从简单和简单的步骤学习Instagram营销从基本到高级概念,包括概述,业务战略,安装和注册,发布和参与,活动审查,微调内容,营销工具和应用程序,集成…...
HTTP Code含义
HTTP Code描述详细100继续100(继续)状态代码表示一个已收到请求,尚未被拒绝服务器。服务器打算在请求已完全收到并已采取行动。当请求包含 Expect 标头字段时100-continue expectation,100响应表示服务器希望接收请求有效负载主体…...
Elasticsearch:Security API 介绍
在我之前的文章 “Elasticsearch:运用 API 创建 roles 及 users” ,我展示了如何使用 Security API 来创建用户及角色来控制访问 Elasticsearch 中的索引。在今天的文章中,我将展示一个使用 Security API 来创建一个用户及角色来访问一个索引…...
springmvc考研交流平台 java ssm mysql
随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,考研交流平台当然也不能排除在外,从备考资料、课程学习的统计和分析,在过程中会产生大量的、各种各样的…...
2.15 vue3 day01 setup ref setup的参数 prop slot插槽 自定义事件通信
二、常用 Composition API 官方文档: 组合式 API 常见问答 | Vue.js 1.拉开序幕的setup 理解:Vue3.0中一个新的配置项,值为一个函数。 setup是所有Composition API(组合API)“ 表演的舞台 ”。 组件中所用到的:数据…...
CentOs7更新Yum源
1.安装wget yum install -y wget 2.备份配置文件 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak 3.下载国内yum源文件(centOs7,比如阿里) wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.al…...
【C/C++】VS2019下C++生成DLL并且成功调用(金针菇般细)
目录 一,生成动态链接库 二,使用动态链接库 一,生成动态链接库 1.打开VS2019,创建新项目,选择 动态链接库(DLL) 模板后进行下一步 2.输入项目名称,其它默认就行(可自行选择),点击创建 3 工程…...
如何重新安装安卓手机系统
下载并安装您设备的驱动程序和ADB工具。如果您已经拥有了它们,请跳过此步骤。没有就百度下载。 打开终端或命令提示符,并将其设置为包含ADB二进制文件的目录。 启动设备并将其连接到计算机上。 在终端或命令提示符中运行以下命令以确认设备是否连接成…...
ArcGIS API for JavaScript 4.15系列(7)——Dojo中的Ajax请求操作
1、前言 作为重要的前后端交互技术,Ajax被广泛应用于Web项目中。无论是jQuery时代的$.ajax还是Vue时代下的axios,它们都对Ajax做了良好的封装处理。而Dojo也不例外,开发者使用dojo/request模块可以轻松实现Ajax相关操作,下面开始…...
智慧校园电子班牌系统
智慧电子班牌区别于传统电子班牌,智慧校园电子班牌系统更加注重老师和学生的沟通交流和及时数据交互。学校为每个教室配置一台智能电子班牌,一般安装于教室门口,用来实时显示学校通知、班级通知,可设置集中分布式管理,…...
软考高项——第五章进度管理
范围管理进度管理总线索规划进度管理定义活动活动排序估算活动资源估算活动时间制定进度管理计划控制进度进度管理总线索 进度管理的总线索包括: 1)规划进度管理 2)定义活动 3)活动排序 4)估算活动资源 5)…...
基于springboot+bootstrap+mysql+redis搭建一套完整的权限架构【二】【整合springSecurity】
1、创建数据库 注意:mysql默认字符集为utf8,默认排序规则为utf8_general_ci。一般我们也会选择字符集为utf-8 MySQL在5.5.3之后增加了这个utf8mb4的编码,utf8mb4完全向下兼容utf8,为了节省空间,一般情况下使用utf8也就…...
字节6面,成功唬住面试官拿了27K,软件测试面试也没有传说中那么难吧....
字节的面试挺独特,每轮面试都没有 HR 约时间,一般是晚上 8 点左右面试官来一个电话,问是否能面试,能的话开始面,不能就约一个其它时间。全程 6 面,前五面技术面,电话面试,最后一面是…...
Qt扫盲-QMake 语言概述
QMake 语言概述一、概述二、变量三、替换函数四、测试函数一、概述 这里主要就是记录一下如何使用 qmake Manual,里面关于我对 qmake的理解,以及如何配置这个 qt 工程文件,通过配置工程文件,来构建出,APP,…...
代码随想录二刷Day02链表:203.移除链表元素,707.设计链表,206.反转链表
203.移除链表元素(写if的时候,要考虑要不要写else语句) 文章链接:代码随想录 (programmercarl.com) 思路: (1)要操作链表的话,可以设置一个虚拟头节点,从而方便操作 …...
如何用python函数制作一个计算工具
大家好,这里是junlang的python文章 今天教大家如何用python函数做一个计算器,希望大家好好学习哦 如何制作 首先我们先定义4个函数,其中除法计算代码请看下面: def add (a,b,c):return (a b - c) def sub (x,y):return(x - y) def mulpl…...
别再只会用默认蓝色了!MATLAB scatter函数调色全攻略,从单色到渐变一次搞定
MATLAB散点图色彩艺术:从基础调色到数据驱动的视觉叙事 科研图表的美学价值往往被低估——直到你看到那些配色糟糕的论文插图。MATLAB的scatter函数远不止是绘制点集的工具,当掌握其色彩控制逻辑后,它能成为数据故事讲述的视觉利器。本文将彻…...
AI原生研发不是升级,是重铸:SITS 2026核心议题深度拆解(含7个未公开技术白皮书线索)
更多请点击: https://intelliparadigm.com 第一章:AI原生软件研发:SITS 2026核心议题深度解读 AI原生软件研发正从“AI-augmented”迈向“AI-native”范式跃迁——系统设计、开发流程、运行时契约与交付形态均以大模型为第一性原理重构。SIT…...
从Prompt Gateway到Content SLA引擎:2026奇点大会上最受瞩目的5个开源组件,已集成至CNCF沙箱(限前500名开发者获取部署手册)
更多请点击: https://intelliparadigm.com 第一章:AI原生内容生成平台:2026奇点智能技术大会AIGC系统搭建 在2026奇点智能技术大会上,主办方构建了一套面向多模态协同创作的AI原生内容生成平台(AIGC-OS)&a…...
SITS 2026正式版将于2024Q3封版,这7类测试团队必须在GA前掌握的AI原生适配策略(限内部技术预览通道)
更多请点击: https://intelliparadigm.com 第一章:AI原生测试方法革新:SITS 2026自动化测试新思路 SITS 2026(Semantic Intelligence Testing Suite)标志着测试范式从脚本驱动向语义感知与上下文自适应的跃迁。它不再…...
OpenClaw用户迁移至Taotoken平台的具体配置步骤详解
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 OpenClaw用户迁移至Taotoken平台的具体配置步骤详解 如果你正在使用OpenClaw这类Agent框架,并希望将后端模型服务切换至…...
2026届毕业生推荐的十大AI学术助手推荐榜单
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 人工智能技术已经深度地融入到了学术写作的流程当中,在毕业论文的撰写期间&#…...
深入Linux内核:SysRq‘魔法键’的驱动实现与串口调试的底层奥秘
深入Linux内核:SysRq‘魔法键’的驱动实现与串口调试的底层奥秘 当系统陷入僵死状态,普通快捷键失效时,Linux开发者常会祭出终极武器——SysRq组合键。这个被称为"魔术键"的机制,能强制唤醒崩溃的进程、安全重启系统甚至…...
如何3步搞定QQ音乐、网易云音乐加密文件,让你的音乐真正属于你
如何3步搞定QQ音乐、网易云音乐加密文件,让你的音乐真正属于你 【免费下载链接】unlock-music-electron Unlock Music Project - Electron Edition 在Electron构建的桌面应用中解锁各种加密的音乐文件 项目地址: https://gitcode.com/gh_mirrors/un/unlock-music-…...
企业内如何通过Taotoken实现API密钥的统一管理与审计
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 企业内如何通过Taotoken实现API密钥的统一管理与审计 在将大模型能力引入企业内部的实践中,如何安全、有序地管理API密…...
