当前位置: 首页 > 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;卡片 问题描述 输入格式 输出格式 样…...

如何快速上手VNote:跨平台Markdown笔记软件的完整指南

如何快速上手VNote&#xff1a;跨平台Markdown笔记软件的完整指南 【免费下载链接】vnote A pleasant note-taking platform. 项目地址: https://gitcode.com/gh_mirrors/vn/vnote VNote是一款基于Qt开发的免费开源Markdown笔记应用&#xff0c;专为追求高效编辑体验的用…...

只剩马斯克自己!xAI 11个联合创始人跑光了

11位联合创始人三年出清、只剩马斯克一人&#xff0c;xAI这场「天团散伙」背后&#xff0c;藏着AI时代最残酷的人才战争与帝国裂缝。3月28日&#xff0c;Ross Nordeen悄悄摘掉了自己在X平台上的xAI员工认证标识。他发了一张照片——「触碰一些草」。没有长篇告别信&#xff0c;…...

告别Xshell!Mac上这款免费串口工具CoolTerm,固件调试日志记录真香了

告别Xshell&#xff01;Mac上这款免费串口工具CoolTerm&#xff0c;固件调试日志记录真香了 从Windows切换到Mac平台的嵌入式开发者&#xff0c;最头疼的莫过于找不到趁手的串口调试工具。Xshell和SecureCRT在Windows上堪称神器&#xff0c;但它们的Mac版本要么收费高昂&#…...

从RNN到Mamba:一个算法工程师的‘长文本’建模踩坑与选型指南

从RNN到Mamba&#xff1a;一个算法工程师的‘长文本’建模踩坑与选型指南 当处理长达数万token的日志序列时&#xff0c;传统RNN的梯度消失问题让模型难以捕捉跨时段的异常模式&#xff0c;而Transformer的二次方复杂度又让显存迅速耗尽。这种困境促使我开始系统评估结构化状态…...

SDMatte新手入门:交互式点选,让复杂抠图变简单

SDMatte新手入门&#xff1a;交互式点选&#xff0c;让复杂抠图变简单 1. 什么是SDMatte&#xff1f; SDMatte是一款基于扩散模型的交互式图像抠图工具&#xff0c;由vivoCameraResearch团队开发。它通过简单的点选操作&#xff0c;就能实现专业级的图像抠图效果&#xff0c;…...

PDF-Parser-1.0保姆级教程:5分钟搞定PDF文档智能解析,小白也能快速上手

PDF-Parser-1.0保姆级教程&#xff1a;5分钟搞定PDF文档智能解析&#xff0c;小白也能快速上手 1. 为什么选择PDF-Parser-1.0&#xff1f; 你是否遇到过这些烦恼&#xff1a; 从PDF复制文字到Word后格式全乱表格数据粘贴后变成一堆乱码论文里的数学公式无法编辑双栏排版的文…...

SDMatte多风格背景生成:抠图后智能匹配艺术化背景

SDMatte多风格背景生成&#xff1a;抠图后智能匹配艺术化背景 1. 效果亮点预览 SDMatte带来的不仅是简单的透明背景抠图。它开创性地将精准抠图与智能背景生成相结合&#xff0c;让每张图片都能拥有无限可能的艺术化呈现。想象一下&#xff0c;你的产品照片可以瞬间变成油画风…...

BilibiliDown完整指南:三步掌握B站视频批量下载技巧

BilibiliDown完整指南&#xff1a;三步掌握B站视频批量下载技巧 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_mirrors/bi/…...

GME-Qwen2-VL-2B-Instruct效果扩展:多风格艺术画作的理解与情感分析展示

GME-Qwen2-VL-2B-Instruct效果扩展&#xff1a;多风格艺术画作的理解与情感分析展示 最近在玩一个挺有意思的视觉语言模型&#xff0c;叫GME-Qwen2-VL-2B-Instruct。它个头不大&#xff0c;但能力挺让人意外。我突发奇想&#xff0c;把它当成了一个“数字艺术评论员”&#xf…...

【花雕学AI】打破AI轻量化极限!MimiClaw:5美元芯片上跑的纯 C 轻量 AI 智能体

提到AI智能体&#xff0c;很多人的第一印象是“需要高性能服务器支撑”“离不开复杂操作系统”“功耗高到不敢长时间运行”——但MimiClaw的出现&#xff0c;彻底打破了这种固有认知。作为全球首个能在仅售5美元的ESP32-S3芯片上流畅运行的纯C编写轻量AI智能体&#xff0c;Mimi…...