[86] 分割链表
题目链接:86. 分隔链表 - 力扣(LeetCode)
第一种方法:类似双指针
自己想的,不知道读者是否能看懂,参考注释
ListNode* partition(ListNode* head, int x) {ListNode* bigpos = nullptr;ListNode* littlepos = nullptr;ListNode* res2 = head;while(head != nullptr){//用两个临时变量记录当前的node和node->nextListNode* tmp1 = head;ListNode* tmp2 = head->next;//如果当前node小于目标值,就要放在little那一部分if(head->val < x){//如果第一次扫到小值部分if(littlepos == nullptr){//直接赋值给littleposlittlepos = tmp1;//如果bigpos已经有值,那么需要把第一个littlepos放在链表第一个//bigpos->next指向当前node的下一个位置,即tmp2//而且要记得更新链表头res2,需要返回if(bigpos){bigpos->next = tmp2;tmp1->next = res2;res2 = tmp1;}}else//不是第一次扫到小值{//如果是littlepos->next = tmp1,说明是连续扫到的小值,并且目前链表只有小值//无须下列步骤,直接可以更新littlepos位置if(littlepos->next != tmp1){//把当前node->next指向littlepos->nexttmp1->next = littlepos->next;//littlepos->next需要指向当前nodelittlepos->next = tmp1;//如果此时bigpos有值,则需要把bigpos->next指向当前node->next,即tmp2//if(bigpos) 这里不需要判断bigpos//走到这里,littlepos->next与当前node不相同,bigpos肯定有值了bigpos->next = tmp2;}//更新littlepos的位置littlepos = tmp1;}}//大值都在后边,bigpos直接更新elsebigpos = tmp1;head = tmp2;//更新head的值}return res2;}
第二种方法:双指针
创建两个链表头,把以target为目标的分到两个链表中
ListNode* partition(ListNode* head, int x) {ListNode* littleList = new ListNode(-1);ListNode* bigList = new ListNode(-1);ListNode* res = littleList;ListNode* bigFront = bigList;int i = 0;while(head){if(head->val < x){littleList->next = head;littleList = littleList->next;head = head->next;littleList->next = nullptr;}else{bigList->next = head;head = head->next;bigList = bigList->next;bigList->next = nullptr;}//这里非常容易出问题,看着类同的代码,如果拿出来就会出错//因为这里是指针类型,littleList和bigList均为当前的head//上述结束之后,如果放在这里更新head,head->next已经为空了//head = head->next;}littleList->next = bigFront->next;return res->next;}
相关文章:
[86] 分割链表
题目链接:86. 分隔链表 - 力扣(LeetCode) 第一种方法:类似双指针 自己想的,不知道读者是否能看懂,参考注释 ListNode* partition(ListNode* head, int x) {ListNode* bigpos nullptr;ListNode* littlep…...
【python】 清空socket缓冲区
在Python中使用Socket进行网络通信时,可以通过调用socket.recv()函数来接收数据,数据会被存储在缓冲区中。有时候,可能想要先清空缓冲区,以便后续的数据不会被之前的数据影响。以下是一种清空Python Socket缓冲区的方法࿱…...
108、RocketMQ的底层实现原理(不需要长篇大论)
RocketMQ的底层实现原理 RocketMQ由NameServer集群、Producer集群、Consumer集群、Broker集群组成,消息生产和消费的大致原理如下: Broker在启动的时候向所有的NameServer注册,并保持长连接,每30s发送一次心跳Producer在发送消息的时候从Na…...
怎么把PDF转为word?1分钟解决难题
PDF文件在我们的电脑上应用非常广泛,由于其较高的安全性和兼容性,得到了广泛的认可。然而,对于一些人来说,PDF文件不能直接进行编辑和修改可能是一个问题。因此,通常我们需要将其转换为Word格式,以便在Word…...
Mysql权限-系统表user,db,talbes_priv,columns_priv详解
一、MySQL 权限场景 可以根据登录用户限制用户访问资源(库、表)可以根据登录用户限制用户的操作权限(能对哪些库、表执行增删改查操作)可以指定用户登录IP或者域名可以限制用户权限分配 二、Mysql五个层级权限级别分析 Mysql权限级别分为了五个层级,并且每个级别…...
GPT-4 模型详细教程
GPT-4(Generative Pretrained Transformer 4)是 OpenAI 的最新语言生成模型,其在各类文本生成任务中表现优秀,深受开发者和研究者喜爱。这篇教程将帮助你理解 GPT-4 的基本概念,并向你展示如何使用它来生成文本。 什么…...
智慧环保:创造绿色未来
随着全球环境问题的日益严重,智慧环保成为推动绿色发展的关键。智慧环保利用先进的技术手段和智能化设备,致力于解决环境问题,保护生态环境,实现可持续发展。它融合了物联网、人工智能、大数据等技术,将科技的力量与环…...
虚拟 DOM和render()函数和Vue.js模板语法
[TOC](虚拟 DOM和render()函数) 1. 虚拟DOM 虚拟DOM是Vue中非常重要的概念,它是一个虚拟的内存中的数据结构,用来表示真实的DOM树。Vue使用虚拟DOM来减少对真实DOM的操作次数,从而提高页面的性能。 虚拟DOM的工作原理如下: Vu…...
k8s Service网络详解(一)
k8s Service网络详解(一) 有关K8s网络的几个概念K8s网络模型k8s网络插件ServiceService的访问方式Service的种类无头服务(Headless Services)带选择算符的服务无选择算符的服务 Service的类型ClusterIPNodeportLoadBalancerExtern…...
抖音账号矩阵系统开发源码
一、技术自研框架开发背景: 抖音账号矩阵系统是一种基于数据分析和管理的全新平台,能够帮助用户更好地管理、扩展和营销抖音账号。 部分源码分享: ic function indexAction() { //面包屑 $breadcrumbs [ [tit…...
Python+Texturepacker自动化处理图片
前言 本篇在讲什么 PythonTexturepacker自动化处理图片 本篇需要什么 对Python语法有简单认知 依赖Python2.7环境 依赖Texturepacker工具 本篇的特色 具有全流程的图文教学 重实践,轻理论,快速上手 提供全流程的源码内容 ★提高阅读体验★ &…...
K8s Service网络详解(二)
K8s Service网络详解(二) Kube Proxy调度模式Kube-proxy IptablesKube-proxy IPVS Service SelectorPod DNS种常见的 DNS 服务Kube-DNSCoreDNSCorefile 配置 DNS 记录DNS 记录 ServiceDNS 记录 PodDNS 配置策略 Pod 的主机名设置优先级 Ingress Kube Pro…...
Rust vs Go:常用语法对比
这个网站 可以列出某门编程语言的常用语法,也可以对比两种语言的基本语法差别。 在此对比Go和Rust 1. Print Hello World 打印Hello World package mainimport "fmt"func main() { fmt.Println("Hello World")} fn main() { println!("…...
Vlan端口隔离(第二十四课)
一、端口隔离 1、端口隔离技术概述 1)端口隔离技术出现背景:为了实现报文之间的二层隔离,可以将不同的端口加入不同的VLAN,但这样会浪费有限的VLAN ID资源。 2)端口隔离的作用:采用端口隔离功能,可以实现同一VLAN内端口之间的隔离。 3)如何实现端口隔离功能:只需要…...
js实现框选截屏功能
实现的思路大概就是,先将dom转化为canvas画布,再对canvas进行裁切,然后通过canvas api生成图片,这里用到了一个库html2canvas 效果如图: 首先实现框选效果: const mousedownEvent (e) > {moveX 0;mo…...
Manjaro Linux 连接公司的 VPN 网络
注意:如果你公司的 VPN 网络是在苹果下使用的,本文可能不适用(苹果系统不支持 PPTP)。 用 Linux 和用 Windows/macOS 不一样,它真的需要用户操心很多东西。比如怎么连接公司的 VPN 网络…… 我是折腾了挺久࿰…...
Ama no Jaku
登录—专业IT笔试面试备考平台_牛客网 题目大意:有一个n*n且仅由0和1构成的矩阵,每次操作可以将一整行或一整列的所有数取反,问能否使所有行中构成的最小数>所有列中构成的最大数 1<n<2000 思路:首先,如果…...
视频基础知识
1.视频比特率 视频的比特率是指传输过程中单位时间传输的数据量。可以理解为视频的编码采样率。单位是kbps,即每秒千比特。视频比特率是决定视频清晰度的一个重要指标。比特率越高,视频越清晰,但数据量也会越大。比如一部100分钟的电影&#…...
安全渗透初级知识总结
Day1: xss详解:web攻防之XSS攻击详解——XSS简介与类型 - 知乎 (zhihu.com) Cookie:身份验证 网页元素属性: id: class:样式名称 console.log(div_class);----打印标签 tabindex"0"---这是…...
rocketmq客户端本地日志文件过大调整配置(导致pod缓存cache过高)
现象 在使用rocketmq时,发现本地项目中文件越来越大,查找发现在/home/root/logs/rocketmqlog目录下存在大量rocketmq_client.log日志文件。 配置调整 开启slf4j日志模式,在项目启动项中增加-Drocketmq.client.logUseSlf4jtrue因为配置使用的…...
弦音墨影在影视鉴赏中的创新应用:自然语言解析千里江山图式影像
弦音墨影在影视鉴赏中的创新应用:自然语言解析千里江山图式影像 1. 系统概述与核心价值 「弦音墨影」是一款将尖端人工智能技术与东方美学深度融合的视频理解系统。它基于Qwen2.5-VL多模态大模型,为用户提供了一种全新的视频内容交互体验——通过自然语…...
【100%通过率】华为OD机试真题2026双机位C卷 C++ 实现【红黑图】
目录 题目 思路 Code 题目 众所周知红黑树时一种平衡树,它最突出的特性就是不能有两个相连的红色节点。那我们定义一个红黑图,也就是一张无向图中,每个节点可能是红黑两种颜色,但我们保证没有两个相邻的红色节点。 现在给一张未染色的无向图,只能染红黑两种颜色,问总共…...
魔兽争霸3帧率优化完全指南:从技术原理到实战调优
魔兽争霸3帧率优化完全指南:从技术原理到实战调优 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 一、性能瓶颈诊断:定位魔兽争…...
学术论文利器:使用LaTeX撰写cv_unet_image-colorization技术报告与实验图表
学术论文利器:使用LaTeX撰写cv_unet_image-colorization技术报告与实验图表 写技术报告或者论文,尤其是涉及图像处理、深度学习这类需要大量公式和图表的领域,你是不是也遇到过这些烦恼?用Word排版,公式稍微复杂一点就…...
基于RexUniNLU的Matlab科研助手开发全攻略
基于RexUniNLU的Matlab科研助手开发全攻略 科研工作繁琐耗时?让AI帮你自动解析论文、理解公式、生成报告! 1. 引言:科研工作的智能革命 作为一名科研工作者,你是否经常被这些场景困扰:面对堆积如山的论文不知从何读起…...
5步搞定CYBER-VISION零号协议:Anaconda环境搭建与依赖安装
5步搞定CYBER-VISION零号协议:Anaconda环境搭建与依赖安装 1. 为什么选择Anaconda管理AI项目环境 在开始安装CYBER-VISION零号协议前,我们需要先解决一个关键问题:如何避免Python环境混乱。想象你正在装修房子,把所有工具和材料…...
OpenClaw夜间任务方案:Qwen3.5-9B定时执行数据备份
OpenClaw夜间任务方案:Qwen3.5-9B定时执行数据备份 1. 为什么需要夜间自动化备份 作为一个长期被数据备份问题困扰的开发者,我经历过太多次硬盘损坏导致工作成果丢失的惨痛教训。手动备份不仅耗时耗力,还经常因为各种原因被搁置。直到发现O…...
基于S7-200控制的自动洗车系统 本设计包括设计报告,PLC组态仿真,I/O接口,带注释程序...
基于S7-200控制的自动洗车系统 本设计包括设计报告,PLC组态仿真,I/O接口,带注释程序pdf版,接线图,控制电路图,主电路图,PLC接线图,顺序功能图 总体设计 系统有自动和手动模式,选择手…...
2026届学术党必备的降重复率平台推荐榜单
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 正在逐渐发生改变的是学术写作模式,借助的是人工智能论文工具,它的核…...
FreeRTOS 工程化要点:任务划分、优先级设计与 CPU 占用率监控
大家好,我是杂烩君。 今天我们来简单分享:FreeRTOS任务怎么拆、优先级怎么配、CPU 占用怎么看。1. 任务划分原则 1.1 单一职责:一个任务只干一件事 把"串口接收 数据解析 指令执行 结果反馈"全塞一个任务,解析环节一…...
