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

Nowcoder .链表分割

文章目录

  • 哨兵位节点

哨兵位节点

链表分割

小于X 尾插到一个新链表
大于等于X 尾插到另一个链表
最后将两个链表链接起来

需要注意的细节:将第一个链表的尾与第二个链表的头相连接,再返回连接后的整个链表的头(哨兵位头节点的下一个)

我们可以把哨兵位的头节点当作真实头节点的前驱,它是一个不在答案范围内的节点,但它却可以有效的控制真实的链表。其里面的值可以是随机的,它的next初始指向NULL,如果有节点尾插,它的next就指向尾插的节点,而尾插的节点就是新连接的链表的真实的头。当最后连接完成时,我们想要返回这个链表,不能直接返回哨兵位的头节点 ,应该直接返回哨兵位的next,因为哨兵位的next才是有效的真实的头节点

使用哨兵位的头节点 可以极大可能的避免判断链表为NULL 的情况

在这里插入图片描述

在这里插入图片描述

class Partition {
public:ListNode* partition(ListNode* pHead, int x){struct ListNode* lesshead = (struct ListNode*)malloc(sizeof(struct ListNode));  //创建哨兵位头节点struct ListNode* greaterhead= (struct ListNode*)malloc(sizeof(struct ListNode));//创建哨兵位头节点 lesshead->next = NULL, greaterhead->next = NULL;struct ListNode* cur = pHead, * lesstail = lesshead, * greatertail = greaterhead;// 遍历原链表while (cur){// 如果小于x就尾插到lessheadif (cur->val < x) {lesstail->next = cur;lesstail=lesstail->next ;cur = cur->next;}else   //如果 >= x 就尾插到greaterhead {greatertail->next =cur ;greatertail=greatertail->next ;cur = cur->next;}}lesstail->next = greaterhead->next;	// 第一个的尾连接第二个的头// 将第二个的尾置为NULLgreatertail->next = NULL;  //防止成环 return lesshead->next; // 返回新链表的头// 分别释放创建的两个哨兵位头节点free(lesshead);free(greaterhead);}
};

需要注意一定要将两个链表链接起来一定要将新链表尾节点置NULL
我们假设 需要分割的链表是 1 5 2 7 3 4 X是 5
小于X 的链表是 1 2 3 4 大于等于X的链表是 5 7
最后将两个链表链接起来
如果此时没有将新链表的尾节点置NULL ,此时 7 的节点还保存了原链表 元素3 的地址就会形成环

如图所示


在这里插入图片描述

如果你觉得这篇文章对你有帮助,不妨动动手指给点赞收藏加转发,给鄃鳕一个大大的关注
你们的每一次支持都将转化为我前进的动力!!!

相关文章:

Nowcoder .链表分割

文章目录哨兵位节点哨兵位节点 链表分割 小于X 尾插到一个新链表 大于等于X 尾插到另一个链表 最后将两个链表链接起来 需要注意的细节&#xff1a;将第一个链表的尾与第二个链表的头相连接&#xff0c;再返回连接后的整个链表的头&#xff08;哨兵位头节点的下一个&#xff0…...

猿创征文 | re:Invent 朝圣之路:“云“行业风向标

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; AWS 亚马逊云科技re:Invent全球大会 2022年亚马逊云科技re:Invent全球大会震撼来袭&#xff0c;即将于北京时间11月30日-12月2日在美国内华达州&#xff0c;拉斯维加斯…...

mysql的distinct和group by的区别

GROUP BY 和 DISTINCT 都是用于从数据库中选择唯一值的 SQL 子句。它们之间的主要区别在于它们的作用方式和应用场景。 GROUP BY 语句用于将数据按照一个或多个列进行分组&#xff0c;然后对每个组应用一个聚合函数&#xff08;如 COUNT、SUM、AVG 等&#xff09;以得到每个组…...

Web前端:前端开发人员的职责有哪些?

前端开发&#xff0c;就是要创造上面提到的网站面向用户的部分背后的代码&#xff0c;并通过建立框架&#xff0c;构建沉浸性的用户体验。前端工程师还需要确保网站在各种浏览器和设备上都能正常运行&#xff0c;并且能够根据用户需求不断优化和改进网站。前端开发人员的角色和…...

BatchNorm1d的复现以及对参数num_features的理解

0. Intro 以pytorch为例&#xff0c;BatchNorm1d的参数num_features涉及了对什么数据进行处理&#xff0c;但是我总是记不住&#xff0c;写个blog帮助自己理解QAQ 1. 复现nn.BatchNorm1d(num_features1) 假设有一个input tensor&#xff1a; input torch.tensor([[[1.,2.,…...

【专项训练】动态规划-1

动态规划 以上,并没有什么本质的不一样,很多时候,就是一些小的细节问题! 要循环,要递归,就是有重复性! 动态规划:动态递推 分治 + 最优子结构 会定义状态,把状态定义对 斐波那契数列 递归、记忆化搜索,比较符合人脑思维 递推:直接开始写for循环,开始递推 这里…...

软测面试了一个00后,绝对能称为是内卷届的天花板

前言 公司前段缺人&#xff0c;也面了不少测试&#xff0c;结果竟然没有一个合适的。一开始瞄准的就是中级的水准&#xff0c;也没指望来大牛&#xff0c;提供的薪资也不低&#xff0c;面试的人很多&#xff0c;但平均水平很让人失望。令我印象最深的是一个00后测试员&#xf…...

赢球票问题

题目描述 某机构举办球票大奖赛。获奖选手有机会赢得若干张球票。 主持人拿出 N 张卡片&#xff08;上面写着 1⋯N 的数字&#xff09;&#xff0c;打乱顺序&#xff0c;排成一个圆圈。 你可以从任意一张卡片开始顺时针数数: 1,2,3 ⋯⋯ 如果数到的数字刚好和卡片上的数字相…...

Go语言基础之Error接口

Go语言基础之Error接口1.Error 接口2.创建错误3.fmt.Errorf1.Error 接口 Go 语言中把错误当成一种特殊的值来处理&#xff0c;不支持其他语言中使用try/catch捕获异常的方式 Go 语言中使用一个名为 error 接口来表示错误类型 type error interface {Error() string }error 接…...

Sqoop详解

目录 一、sqoop基本原理 1.1、何为Sqoop&#xff1f; 1.2、为什么需要用Sqoop&#xff1f; 1.3、关系图 1.4、架构图 二、Sqoop可用命令 2.1、公用参数&#xff1a;数据库连接 2.2、公用参数&#xff1a;import 2.3、公用参数&#xff1a;export 2.4、公用参数&#xff…...

C++ 之指针

文章目录参考描述指针运算符地址运算符奇偶分体指针的创建间接寻址运算符句点运算符运算符优先级问题箭头运算符运算符优先级指针野指针空指针通用指针解引用分析指针的算术运算加减运算自增运算与自减运算比较运算指针与常量指针常量常量指针指向常量的指针常量指针与数组数组…...

数据结构与算法---JS与栈

前言js里&#xff0c;是没有栈这种原生的数据结构。但是我们可以通过自定义创建栈类&#xff0c;来实现对添加/删除元素时更多的控制。创建栈类// 初始化一个基于数组的栈类 class Stack {constructor() {this.items [];} }为什么我们要选择数组作为栈类的存储数据类型&#x…...

HDLBits: 在线学习 SystemVerilog(二十三)-Problem 158-162(找BUG)

HDLBits: 在线学习 SystemVerilog&#xff08;二十三&#xff09;-Problem 158-162&#xff08;找BUG&#xff09;HDLBits 是一组小型电路设计习题集&#xff0c;使用 Verilog/SystemVerilog 硬件描述语言 (HDL) 练习数字硬件设计~网址如下&#xff1a;https://hdlbits.01xz.ne…...

国外SEO升级攻略:如何应对搜索引擎算法变化?

搜索引擎优化&#xff08;SEO&#xff09;是一个动态的领域&#xff0c;搜索引擎的算法经常会发生变化&#xff0c;这意味着SEO专业人员需要保持更新的技术知识和策略&#xff0c; 以适应变化并提高网站的排名。 以下是一些应对搜索引擎算法变化的升级攻略&#xff1a; 创造…...

X.509证书

证书格式ASN.1是一种抽象的数据结构&#xff0c;描述了复杂的对象&#xff0c;以及对象之间的关系。证书本质上是一个文件&#xff0c;需要一种专门的格式&#xff0c;才能在互联网中传输&#xff0c;证书需要通过一个规则将ASN.1转换为二进制文件&#xff0c;这就需要对证书以…...

高等数学——微分方程

文章目录概念一阶微分方程可降阶的微分方程高阶线性微分方程线性微分方程解的结构常系数齐次线性微分方程常系数非齐次线性微分方程概念 微分方程&#xff1a;含有未知函数的导数或微分的方程称为微分方程。微分方程的阶&#xff1a;微分方程中所出现的未知函数最高阶导数的阶…...

JAVA小记-生成PDF文件

项目场景: 例如:项目中需要生成PDF文件 项目使用情况 1、引入pom.xml <!--pdf相关依赖--> <dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13</version> </dependency>…...

Noah-MP陆面过程模型建模方法与站点、区域模拟

陆表过程的主要研究内容以及陆面模型在生态水文研究中的地位和作用 熟悉模型的发展历程&#xff0c;常见模型及各自特点&#xff1b; Noah-MP模型的原理 Noah-MP模型所需的系统环境与编译环境的搭建方法您都了解吗&#xff1f;&#xff1f; linux系统操作环境您熟悉吗&…...

全国青少年软件编程(Scratch)等级考试一级真题——2019.9

青少年软件编程&#xff08;Scratch&#xff09;等级考试试卷&#xff08;一级&#xff09;分数&#xff1a;100 题数&#xff1a;37一、单选题(共25题&#xff0c;每题2分&#xff0c;共50分)1.小明在做一个采访的小动画&#xff0c;想让主持人角色说“大家好&#xff01;”3秒…...

第十四届蓝桥杯三月真题刷题训练——第 6 天

目录 第 1 题&#xff1a;星期计算 问题描述 运行限制 代码&#xff1a; 第 2 题&#xff1a;考勤刷卡 问题描述 输入格式 输出格式 样例输入 样例输出 评测用例规模与约定 运行限制 代码&#xff1a; 第 3 题&#xff1a;卡片 问题描述 输入格式 输出格式 样…...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端&#xff0c;它允许HTTP与Elasticsearch 集群通信&#xff0c;而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性&#xff0c;不同版本的Docker对内核版本有不同要求。例如&#xff0c;Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本&#xff0c;Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 &#xff08;一&#xff09;概念解析 TRS&#xff08;Total Return Swap&#xff09;收益互换是一种金融衍生工具&#xff0c;指交易双方约定在未来一定期限内&#xff0c;基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

uniapp中使用aixos 报错

问题&#xff1a; 在uniapp中使用aixos&#xff0c;运行后报如下错误&#xff1a; AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域&#xff0c;Hive 作为 Hadoop 生态中重要的数据仓库工具&#xff0c;其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式&#xff0c;很多开发者常常陷入选择困境。本文将从底…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中&#xff0c;车辆不再仅仅是传统的交通工具&#xff0c;而是逐步演变为高度智能的移动终端。这一转变的核心支撑&#xff0c;来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒&#xff08;T-Box&#xff09;方案&#xff1a;NXP S32K146 与…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战&#xff0c;克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

Kafka入门-生产者

生产者 生产者发送流程&#xff1a; 延迟时间为0ms时&#xff0c;也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于&#xff1a;异步发送不需要等待结果&#xff0c;同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...

离线语音识别方案分析

随着人工智能技术的不断发展&#xff0c;语音识别技术也得到了广泛的应用&#xff0c;从智能家居到车载系统&#xff0c;语音识别正在改变我们与设备的交互方式。尤其是离线语音识别&#xff0c;由于其在没有网络连接的情况下仍然能提供稳定、准确的语音处理能力&#xff0c;广…...