Day4: 两两交换链表中的节点 24 删除链表的倒数第N个节点 19 链表相交 02.07 环形链表II 142


题目24. 两两交换链表中的节点 - 力扣(LeetCode)

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* swapPairs(ListNode* head) {ListNode* newhead=new ListNode(0);newhead->next=head;ListNode* prev=newhead;ListNode* cur=head;if(head==nullptr)//头为空{return head;}ListNode* next=head->next;//头不为空while(next!=nullptr){ListNode* nnext=next->next;next->next=cur;cur->next=nnext;prev->next=next;prev=prev->next->next;cur=prev->next;if(cur==nullptr){break;}next=cur->next;}return newhead->next;}
};

题目19. 删除链表的倒数第 N 个结点 - 力扣(LeetCode)

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* removeNthFromEnd(ListNode* head, int n) {//双指针 快慢指针ListNode* newhead=new ListNode(0);//虚拟头节点,链表题中要常用newhead->next=head;ListNode* slow=newhead;ListNode* fast=newhead;//快指针先走n步while(n-->0){fast=fast->next;}//快慢指针同时走ListNode* prev=slow;while(fast!=nullptr){prev=slow;slow=slow->next;fast=fast->next;}//删除指向slow的指针prev->next=slow->next;delete slow;return newhead->next;}
};

题目面试题 02.07. 链表相交 - 力扣(LeetCode)

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {//求两个链表长度差值//移动指向较长链表的指针//同时移动两个链表指针,比较指针是否相等,链表相交比较的是地址相等,不是值相等int alen=0;int blen=0;ListNode* pa=headA;ListNode* pb=headB;while(pa!=nullptr){pa=pa->next;alen++;}while(pb!=nullptr){pb=pb->next;blen++;}int n=0;pa = headA;pb = headB;if(alen>blen){n=alen-blen;while(pa!=nullptr&&n-->0){pa=pa->next;}}else{n=blen-alen;while(pb!=nullptr&&n-->0){pb=pb->next;}}while(pb!=nullptr){if(pb==pa){return pb;}pa=pa->next;pb=pb->next;}return nullptr;}
};

题目142. 环形链表 II - 力扣(LeetCode)

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:ListNode *detectCycle(ListNode *head) {//快慢指针找到相遇节点,如果能相遇代表有圈,否则没有//相遇节点和起始节点同时出发,找到环形链表入口ListNode* slow=head;ListNode* fast=head;int flag=0;//0有环 1无环while(fast!=nullptr&&fast->next!=nullptr){slow=slow->next;fast=fast->next->next;if(slow==fast){flag=1;//有环break;//跳出循环}}if(flag==0){return nullptr;//无环}ListNode* newn=head;ListNode* meet=slow;//相遇点while(newn!=meet){newn=newn->next;meet=meet->next;}return meet;}
};

最后

两两交换链表中的节点 24 删除链表的倒数第N个节点 19 链表相交 02.07 环形链表II 142

双指针用法 快慢指针用法

环形链表就是快慢指针判断是否有圈,以及在相遇点和起始点两个指针同步移动,相遇就是环入口

链表相交就是统计链表长度,长链表指针走链表长度之差,然后两个链表指针同步走,要是相等就相交

删除链表倒数第N个节点,快指针先走N步,可以添加虚拟头节点,方便计算倒数第几个节点,然后快慢指针同步走,知道满足条件

两两交换链表中的节点,就是典型的多指针+虚拟头节点应用,要边画图边写最合适。

注意跳出循环的条件,还有注意不要进行空指针访问,多注意

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/860323.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新鲜出炉的信息化一机两用方案

在信息化日益发展的今天,网络安全问题愈发凸显其重要性。尤其是在政府和企事业单位中,如何在保证业务流畅和工作效率的同时,确保信息高安全性,成为了一个亟待解决的问题。而“一机两用”政策,正是针对这一需求而提出的…

QT布局管理(分割窗口QSplitter类、停靠窗口QDockWidget类、堆栈窗体QStackedWidget类、基本布局QLayout)

此片文章简单介绍布局管理的使用方法。通过实例先分别介绍分隔窗口QSplitter类、停靠窗口QDockWidget类及QStackedWidget类的使用,最后再通过一个实例介绍QLayout的使用。 分割窗口QSplitter类 分隔窗口可以灵活地布局窗口,可以用在文件资源管理器地窗…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 任务积分优化问题(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 📎在线评测链接 任务积分优化问题(100分) 🌍 评测功能需要 订阅专栏 后私信…

python数据可视化:在带有子图的绘图中添加总标题 matplotlib.pyplot.suptitle()

【小白从小学Python、C、Java】 【考研初试复试毕业设计】 【Python基础AI数据分析】 python数据可视化: 在带有子图的绘 图中 添加总标题 matplotlib.pyplot.suptitle() 请问关于以下代码表述正确的选项是? import matplotlib.pyplot as plt fig, (ax…

LiveMedia视频汇聚平台的设备管理功能

LiveMedia视频汇聚平台的设备管理功能是实现视频资源有效管理和控制的关键组成部分。以下是设备管理功能的详细介绍: 设备接入与管理: 设备添加与编辑:平台支持添加、编辑与删除设备,可编辑的信息包括设备接入的协议类型、服务节…

中小学校共用电脑通过安当SLA产品配置实现开机控制

中小学校公用电脑实现电脑开机控制的必要性主要体现在以下几个方面: 1. 增强安全性: 公用电脑由于使用频繁,容易被未经授权的用户访问,可能存在数据泄露或恶意软件植入的风险。通过实现电脑开机控制,学校可以确保只有…

游戏AI的创造思路-技术基础-深度学习(4)

下面的内容是让AI进行左右互博,这就是传说中的GAN对抗网络 当然,周伯通和GAN真的是难兄难弟,欲练神功,结果被黄药师(欺骗)坑了 目录 3.4. 生成对抗网络(GAN) 3.4.1. 定义 3.4.2.…

ThinkPad 进入BIOS推荐方法ThinkPad(ThinkCentre , ThinkStation)

ThinkPad 进入BIOS推荐方法ThinkPad(ThinkCentre , ThinkStation) 打开系统电源。在启动过程中,按Lenovo , ThinkPad , ThinkStation或ThinkCentre徽标上的F1 。 下图显示了示例BIOS屏幕。 注意&#xff…

PHPMailer发送的中文内容乱码如何解决

一: PHPMailer sdk 文件中有个设置默认编码的位置: vendor/phpmailer/phpmailer/src/PHPMailer.php 二: 实际业务代码中: require /sdk/PHPMailer/vendor/autoload.php;$mail new PHPMailer(true);try {//Server settings$mai…

免费!AI视频一键转绘,​哎哟不错哦~

前段时间给大家介绍过StreamV2V,它基于一种神奇的扩散模型,实现了视频到视频的一键转绘。今天带来StreamV2V视频一键转绘整合包,我只能“说哎哟不错哦”~ StreamV2V简介 你正在看一个视频,突然间,视频中的人物换了张脸…

WebSocket 连接失败的原因及解决方法

WebSocket 目前已经成为了一项极为重要的技术,其允许客户端和服务器之间进行实时、全双工的通信。然而,在实际项目中,开发者时常会遇到 WebSocket 连接失败的情况。这不仅影响了用户体验,还可能导致不可预见的系统错误或数据丢失。…

EE trade:利弗莫尔三步建仓法

在股市投资领域,利弗莫尔这个名字代表着无数的智慧和经历。他的三步建仓法成为了投资者们趋之若鹜的学习对象。本文将详细解析利弗莫尔的著名买入法,通过分步进攻方式,有效掌控市场并实现盈利。 一、利弗莫尔的三步建仓法详解 利弗莫尔三步…

ADS SIPro使用技巧之RapidScan-Z0

PCB走线的阻抗对每个网络的信号完整性至关重要,但是,验证每个信号是不切实际的,尤其对于设计复杂度很高的产品而言,设计者的有限精力只能用于关注关键的设计点,这一过程往往会造成一些设计的疏忽从而导致错误。 ADS SI…

Steam夏促时间 Steam夏促怎么参加外区的促销教程

steam6月28日开启,夏促也是一年中促销力度比较大的促销活动了,想要入手游戏的玩家,这也是一波很好的机会,预告中出现的游戏包括《幻兽帕鲁》《迪士尼梦幻星谷》《庄园领主》《群星》《猛兽派对》《蝙蝠侠:阿卡姆骑士》…

API-事件类型

学习目标&#xff1a; 掌握事件类型 学习内容&#xff1a; 事件类型鼠标事件焦点事件键盘事件文本事件focus选择器案例 事件类型&#xff1a; 鼠标事件&#xff1a; <title>事件类型-鼠标事件</title><style>div {width: 200px;height: 200px;background-c…

【sklearn基础入门教程】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

STM32HAL库--PWR低功耗实验(速记版)

电源控制&#xff08;PWR&#xff09;简介 电源控制部分&#xff08;PWR&#xff09;概述了不同电源域的电源架构以及电源配置控制器。PWR 的内容比较多&#xff0c;我们把它们的主要特性概括为以下 3 点&#xff1a; 电源系统&#xff1a;USB 稳压器、内核域(VCORE)、…

StarRocks 存算分离成本优化最佳实践

序言 StarRocks 存算分离借助对象存储来实现计算和存储能力分离&#xff0c;而存算分离版本 StarRocks 一般来说有以下三方面成本&#xff1a; 计算成本&#xff0c;也即机器使用成本&#xff0c;尤其是运行在公有云上时存储成本&#xff0c;该部分与对象存储上存储的数据量相…

探索SoMeLVLM:面向社交媒体处理的大型视觉语言模型

SoMeLVLM: A Large Vision Language Model for Social Media Processing 论文地址: https://arxiv.org/abs/2402.13022https://arxiv.org/abs/2402.13022发表在ACL 2024 1.概述 在线社交媒体平台涌现出海量的文本与视觉内容,深刻揭示了人们如何交流、互动以及自我表达。随着通…

论文辅导 | 基于贝叶斯优化LSTM的锂电池健康状态评估方法

辅导文章 模型描述 在传统的 LSTM 神经网络中,超参数的取值对模型性能有很大影响,但人工调参很难得到最优解。 因此,本文加入了 BO 来迭代出最优超参数。 在利用LSTM 神经网络评估锂电池 SoH 的基础上,通过 BO来提高评估的精确度。 预测效果