leetcode-04-[24]两两交换链表中的节点[19]删除链表的倒数第N个节点[160]相交链表[142]环形链表II
一、[24]两两交换链表中的节点
重点:暂存节点
class Solution {public ListNode swapPairs(ListNode head) {ListNode dummyHead=new ListNode(-1);dummyHead.next=head;ListNode pre=dummyHead;//重点:存节点while(pre.next!=null&&pre.next.next!=null){ListNode tmp=pre.next;ListNode tmp1=pre.next.next.next;pre.next=pre.next.next;//1、注意一下pre.next.next=tmp;//2、注意一下tmp.next=tmp1;pre=pre.next.next;}return dummyHead.next;}
}
二、[19]删除链表的倒数第N个节点
重点:
1、为啥要让快指针先行?
快指针先行n步,这样快慢指针之间形成了一段长度为n的窗口,之后快慢指针同步向前相当于保持窗口长度不变。这样当快指针到达了末尾指向NULL,另一端的慢指针距离末尾的长度是n,自然就是指向倒数第n个位置了。
2、为啥快指针先行了n+1步?(相当于窗口大小 n+1)
由于单链表中的next指针指向的是下一个节点,想要删除倒数第n个节点,自然要将操作指针慢指针指向倒数第n+1个节点,这样才能进行删除操作。
x-1+1=n+1(1 为第一个节点,即dummyHead)
x=n+1(即相对于第一个节点,前进n+1步)
3、虚拟头节点dummyHead的作用是?
如果单链表中要删除的节点是头节点,这个头节点正好是dummyHead的下一个节点,如此即可统一起来删除操作而不必单独考虑。
class Solution {public ListNode removeNthFromEnd(ListNode head, int n) {//快慢指针 窗口为n+1ListNode dummyHead=new ListNode(-1);dummyHead.next=head;ListNode slow=dummyHead;ListNode fast=dummyHead;for(int i=0;i<n+1;i++){fast=fast.next;}while(fast!=null){slow=slow.next;fast=fast.next;}slow.next=slow.next.next;return dummyHead.next;}
}
三、[160]相交链表
重点:让两个链表一样长
public class Solution {public ListNode getIntersectionNode(ListNode headA, ListNode headB) {ListNode p1=headA;ListNode p2=headB;//不存在相交节点,则null=nullwhile(p1!=p2){if(p1==null){p1=headB;}else{p1=p1.next;}if(p2==null){p2=headA;}else{p2=p2.next;}}return p1;}
}
四、[142]环形链表II
建议先写[141]环形链表
public class Solution {public ListNode detectCycle(ListNode head) {ListNode slow=head;ListNode fast=head;//1、判断条件while(fast!=null&&fast.next!=null){slow=slow.next;fast=fast.next.next;if(fast==slow){ListNode index1=fast;ListNode index2=head;//2、此处为while循环while(index1!=index2){index1=index1.next;index2=index2.next;}return index1;}}return null;}
}
引自代码随想录网站 :代码随想录



相关文章:
leetcode-04-[24]两两交换链表中的节点[19]删除链表的倒数第N个节点[160]相交链表[142]环形链表II
一、[24]两两交换链表中的节点 重点:暂存节点 class Solution {public ListNode swapPairs(ListNode head) {ListNode dummyHeadnew ListNode(-1);dummyHead.nexthead;ListNode predummyHead;//重点:存节点while(pre.next!null&&pre.next.next…...
深入探讨 Java 18 的主要新特性,分析其设计理念和实际应用
Java 18 作为 Java 的最新版本,引入了一系列的新特性和改进,这些变化不仅提升了语言的性能和安全性,也为开发者提供了更多的工具和选项,简化了开发过程,提高了代码的可读性和维护性。本文将深入探讨 Java 18 的主要新特性,分析其设计理念和实际应用,帮助读者理解这些新特…...
qt4-qt5 升级(2)-GUI-UTF-8-GBK-QTextCode-字符集乱码
MFC与QT的消息机制的区别_qt信号槽机制与mfc的消息映射机制的区别-CSDN博客 1.QT4-QT5差别 kits构建 控件,信号与槽 ui修改好后点击编译会自动生成 ui_XXX.h 聚合的关系,不是拥有的关系。 QWidget 和QWindow有什么差别? 2.VS2019-QT5 构建…...
Qt Designer 生成的 .ui 文件转为 .py 文件并运行
1. 使用使用 PyUIC将 .ui 转 .py (1)打开命令行终端(可以用cmd,或pycharm 下面的 Terminal)。 (2)导航到包含.ui文件的目录。 cd 你的ui文件路径 (3)运行以下命令来…...
Dubbo 3.x源码(20)—Dubbo服务引用源码(3)
基于Dubbo 3.1,详细介绍了Dubbo服务的发布与引用的源码。 此前我们学习了调用createProxy方法,根据服务引用参数map创建服务接口代理引用对象的整体流程,我们知道会调用createInvokerForRemote方法创建远程引用Invoker,这是Dubbo …...
开发一个Dapp需要多少?
区块链开发一个Dapp要多少钱? 开发一个去中心化应用(Dapp)的成本取决于多个因素,包括Dapp的复杂性、功能需求、区块链平台以及开发团队的经验水平。以下是一些主要的影响因素: 1. 区块链平台:不同区块链…...
kNN算法-概述
所谓kNN算法就是K-nearest neigbor algorithm。这是似乎是最简单的监督机器学习算法。在训练阶段,kNN算法存储了标签训练样本数据。简单地说,就是调用训练方法时传递给它的标签训练样本会被它存储起来。 kNN算法也叫lazy learning algorithm懒惰学习算法…...
富格林:曝光纠正出金亏损陋习
富格林悉知,虽然现货黄金市场看似变化无常,在操作方向上依旧是有迹可循的,投资者需要了解曝光的专业经验纠正陋习阻止出金亏损。要获得优质的黄金投资出金效果,就需要在明确现货黄金操作技巧的前提下,只有规范遵循已曝…...
怎么用微信小程序实现远程控制空调
怎么用微信小程序实现远程控制空调呢? 本文描述了使用微信小程序调用HTTP接口,实现控制空调,通过不同规格的通断器,来控制不同功率的空调的电源。 可选用产品:可根据实际场景需求,选择对应的规格 序号设备…...
ES5/ES6 的继承除了写法以外还有什么区别?
一、主要区别 ES5 的继承实质上是先创建子类的实例对象, 然后再将父类的方法添加 到 this 上(Parent.apply(this)) . ES6 的继承机制完全不同, 实质上是先创建父类的实例对象 this(所以必 须先调用父类的 super()方法…...
LeetCode 第401场周赛个人题解
100325. 找出 K 秒后拿着球的孩子 原题链接 100325. 找出 K 秒后拿着球的孩子 思路分析 数据很小,暴力或者数学方法都行 数学方法就是对 n - 1做带余除法,看跑了奇数还是偶数趟,余数如何,确定位置 时间复杂度:O(…...
C#面:请解释web.config⽂件中的重要节点
在C#中,web.config文件是一个XML格式的配置文件,用于配置ASP.NET应用程序的各种设置。web.config文件中包含了许多重要的节点,下面是一些常见的重要节点及其作用: <configuration>节点:web.config文件的根节点&…...
30分钟吃掉 Pytorch 转 onnx
节前,我们星球组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学. 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 汇总合集&…...
KEIL5如何打开KEIL4的GD工程
GD官方提供的很多KEIL例程为KIEL4的版本,读者使用的时候可能会碰到使用KEIL5打开KEIL4的工程会报错以及无法找到芯片选型的问题,具体表现如下图所示。 我们该怎么办呢? 下面为大家介绍两种方法: 第一种方法是在keil4的工程后缀u…...
大前端技术分类
1 基础 2 语言 3 类库 4 框架 5 跨栈 6 架构 7 领域 7.1 中后台 7.2 跨平台 7.3 可视化 7.4 智能化 7.5 工程化 7.5.1 规范化 7.5.2 流程化 —— 前端工程化工具系列 7.5.3 模板化 7.5.4 自动化 7.5.5 平台化 7.6 其他 7.6.1 音视频 7.6.2 Web3 7.6.3 区块…...
Android AAudio——C API控制音频流(四)
上一篇文章我们介绍了 C API 中音频流的创建流程,以及打开音频流操作,这里我们再来看一下音频流的其他操作流程 一、音频流操作介绍 1、操作流程图 下图是状态变化流程图,虚线框表示瞬时状态,实线框表示稳定状态。 2、操作函数 上图中主要包含下面几个操作函数: aaudio…...
万能嗅探:视频号下载神器
万能嗅探是一款比较好用资源嗅探软件,界面干净,可以抓取浏览器的网页,不过想必各位主要用来抓取视频号,下面是使用方法。 使用方法 打开万能嗅探客户端,然后打开浏览器,产生网络请求即可,看看…...
python数据分析-ZET财务数据分析
一、公司背景 中兴通讯股份有限公司是一家总部位于中国深圳的跨国公司,致力于为全球客户提供通信设备和解决方案。公司成立于1985年,自成立以来一直致力于为客户提供创新的通信技术和服务。中兴通讯的业务涵盖多个领域,包括但不限于高端路由…...
Leetcode学习
回文数 反转一半数字 第一个想法是将数字转换为字符串,并检查字符串是否为回文。 但是,这需要额外的非常量空间来创建问题描述中所不允许的字符串。 第二个想法是将数字本身反转,然后将反转的数字与原始数字比较,如果它们是相同…...
python 列出面板数据所有变量名
在Python中,处理面板数据(Panel Data)通常使用pandas库,特别是当数据以DataFrame或Panel(尽管Panel在较新版本的pandas中已被弃用)的形式存在时。然而,由于Panel的弃用,现代做法通常…...
引入电转气协同的含碳捕集与垃圾焚烧虚拟电厂优化调度
【文章复现 可】计及电转气协同的含碳捕集与垃圾焚烧 虚拟电厂优化调度 引入碳捕集电厂–电转气–燃气机组协同利用框架,碳捕集的 CO2可作为电转气原料,生成的天然气则供应给燃气机组;并通过联合调度将碳捕集能耗和烟气处理能耗进行负荷转移…...
探索CLIP-ViT-H-14:5大突破重新定义多模态AI应用
探索CLIP-ViT-H-14:5大突破重新定义多模态AI应用 【免费下载链接】CLIP-ViT-H-14-laion2B-s32B-b79K 项目地址: https://ai.gitcode.com/hf_mirrors/laion/CLIP-ViT-H-14-laion2B-s32B-b79K 你是否想过让计算机像人类一样同时理解图像和文字?CLI…...
论文格式不再是噩梦:Paperxie 智能排版,4000 + 高校模版一键适配知网 / 维普
paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AIPPThttps://www.paperxie.cn/format/typesettinghttps://www.paperxie.cn/format/typesetting 又到毕业季,多少本科生在论文内容写完后,倒在了格式排版这最后一关?字体…...
BGE-Large-Zh在游戏行业的应用:玩家反馈语义分析
BGE-Large-Zh在游戏行业的应用:玩家反馈语义分析 1. 引言 在游戏行业,玩家反馈是宝贵的资源,但面对海量的评论、论坛帖子和客服对话,人工处理往往力不从心。传统的关键词匹配方法只能捕捉表面信息,无法理解玩家真正的…...
MusePublic低配适配教程:16G显存降级方案与效果妥协平衡点
MusePublic低配适配教程:16G显存降级方案与效果妥协平衡点 1. 项目简介 MusePublic是一款专门为艺术感时尚人像创作设计的轻量化文本生成图像系统。这个项目的核心基于MusePublic专属大模型,采用安全高效的safetensors格式封装,针对艺术人像…...
终极指南:AR.js增强现实如何在电商、教育和娱乐领域创造革命性体验
终极指南:AR.js增强现实如何在电商、教育和娱乐领域创造革命性体验 【免费下载链接】AR.js Image tracking, Location Based AR, Marker tracking. All on the Web. 项目地址: https://gitcode.com/gh_mirrors/arj/AR.js AR.js是一个轻量级的Web增强现实库&a…...
FSCalendar深度链接集成指南:从URL直接打开指定日期的终极解决方案
FSCalendar深度链接集成指南:从URL直接打开指定日期的终极解决方案 【免费下载链接】FSCalendar 项目地址: https://gitcode.com/gh_mirrors/fsc/FSCalendar FSCalendar是一款功能强大的iOS日历组件,支持高度自定义和流畅的用户体验。在移动应用…...
lvgl有哪些布局?
LVGL 提供了多种布局方式,帮助你高效组织界面元素,避免手动计算坐标。在 v8.2.0 中,主要有以下几种布局方法:1. 绝对定位(手动设置坐标) 最基础的方式,通过 lv_obj_set_pos(obj, x, y) 直接指定…...
AI智能文档扫描仪轻量级优势:适用于边缘设备的部署实践
AI智能文档扫描仪轻量级优势:适用于边缘设备的部署实践 1. 为什么轻量级文档扫描在边缘场景中不可替代 你有没有遇到过这样的情况:在客户现场调试工业设备时,需要快速扫描一份维修手册;在仓库盘点时,要即时拍下纸质入…...
ChatTTS音色克隆实战:从零构建高效语音合成模型
最近在做一个语音交互项目,需要为不同角色定制专属语音。传统的语音合成方案要么音色固定,要么克隆流程复杂、耗时巨大。直到我尝试了ChatTTS,才发现音色克隆可以如此高效。今天就来分享一下我的实战经验,希望能帮你绕过我踩过的那…...
