代码随想录04

news/2025/1/14 1:24:49/

24. 两两交换链表中的节点

/** @lc app=leetcode.cn id=142 lang=cpp** [142] 环形链表 II*/// @lc code=start
/*** 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* fast=head;ListNode* slow=head;while(fast!=nullptr&&fast->next!=nullptr){slow=slow->next;fast=fast->next->next;if(slow==fast){ListNode* index1=fast;ListNode* index2=head;while(index1!=index2){index1=index1->next;index2=index2->next;}return index2;}}return NULL;}
};
// @lc code=end

19.删除链表的倒数第N个节点

/** @lc app=leetcode.cn id=19 lang=cpp** [19] 删除链表的倒数第 N 个结点*/// @lc code=start
/*** 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* dhead=new ListNode(0);dhead->next=head;ListNode* slow=dhead;ListNode* fast=dhead;while(n--&&fast!=nullptr){fast=fast->next;}fast=fast->next;while(fast!=nullptr){fast=fast->next;slow=slow->next;}slow->next=slow->next->next;return dhead->next;}
};
// @lc code=end

面试题 02.07. 链表相交

/*** 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) {ListNode* curA=headA;ListNode* curB=headB;int lena=0,lenb=0;while(curA!=nullptr){lena++;curA=curA->next;}while(curB!=nullptr){lenb++;curB=curB->next;}curA=headA;curB=headB;if(lenb>lena){swap(lena,lenb);swap(curA,curB);}int gap=lena-lenb;while(gap--){curA=curA->next;}while (curA!=nullptr){if(curA==curB)return curA;curA=curA->next;curB=curB->next;}return NULL;}
};

142.环形链表II

/** @lc app=leetcode.cn id=142 lang=cpp** [142] 环形链表 II*/// @lc code=start
/*** 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* fast=head;ListNode* slow=head;while(fast!=nullptr&&fast->next!=nullptr){slow=slow->next;fast=fast->next->next;if(slow==fast){ListNode* index1=fast;ListNode* index2=head;while(index1!=index2){index1=index1->next;index2=index2->next;}return index2;}}return NULL;}
};
// @lc code=end

链表题一定要多画图模拟过程


http://www.ppmy.cn/news/1562636.html

相关文章

【Android】直接使用binder的transact来代替aidl接口

aidl提供了binder调用的封装,有的时候,比如: 1. 懒得使用aidl生成的接口文件(确实是懒,Android studio中aidl生成接口文件很方便) 2. 服务端的提供者只公开了部分接口出来,只给了调用编号和参…

限制图层列表

上节已经学习了如何使用ListLayers()函数获取图层列表.有时候并不需要地图文档中全部图层的列表,而仅仅需要图层的子集.ListLayers()函数可以限制返回的图层列表. 操作方法: 1.在arcmap中打开目标活动地图 2.单击arcmap标准工具条上的python按钮 3.导入arcpy.mapping模块. …

【LC】3270. 求出数字答案

题目描述: 给你三个 正 整数 num1 ,num2 和 num3 。 数字 num1 ,num2 和 num3 的数字答案 key 是一个四位数,定义如下: 一开始,如果有数字 少于 四位数,给它补 前导 0 。答案 key 的第 i 个数…

稀土化合物:引领科技创新,推动绿色发展

一、稀土化合物的基本概念 稀土化合物是指由稀土元素与其他元素形成的化学化合物。稀土元素包括镧系元素和铕、铽、镱、钇等,具有独特的物理、化学性质,这些元素在现代工业、科技和环保领域中扮演着至关重要的角色。稀土化合物具有非常丰富的光、电、磁…

华为企业组网的一些基本运用

华为设备的组网是指通过华为的各种网络设备和技术,建立起一个高效、安全、可靠的计算机网络环境。华为在网络组网领域提供了多种产品和解决方案,包括交换机、路由器、防火墙、无线设备等,这些设备和技术组合在一起构成了一个完整的网络架构。…

【学习笔记】数据结构(十一)

外部排序 文章目录 外部排序11.1 外存信息的存取11.2 外部排序的方法11.3 多路平衡归并的实现 - 增加k11.4 置换-选择排序 - 减少m11.5 最佳归并树 外部排序 指的是大文件的排序,即待排序的记录存储在外存储器 上,在排序过程中需进行多次的内、外存之间的…

【cs.AI】25.1.10 arxiv更新速递

25.1.9 12:00 - 25.1.10 12:00 共更新91 篇 —第1篇---- ===== Progressive Growing of Video Tokenizers for Highly Compressed Latent Spaces 🔍 关键词: 视频分词器, 潜在视频扩散模型, 时间压缩, 重构质量, 视频生成 PDF链接 摘要: 视频分词器对于潜在视频扩散模型…

spring boot发送邮箱,java实现邮箱发送(邮件带附件)3中方式【保姆级教程一,代码直接用】

文章目录 Java发送邮箱的方式1. 基于 Javax.mail 实现关于附件上传的方法 2. 基于 org.apache.commons.mail 实现常见报错 3. 基于 spring-boot-starter-mail 实现(推荐) 实际开发时需要实现邮件发送,本文章实现如何从零实现邮件发送。也就是…