代码随想录day4 -链表

使用静态库在嵌入式系统中进行开发 静态库是一种包含预编译对象代码的文件,它可以与应用程序链接在一起,并在编译时将库的代码复制到最终的可执行文件中。静态库是包含预编译对象代码的文件,可以与应用程序链接在一起,并在编译时将库的代码复制到最终的可执行文件中。需要注意的是,由于嵌入式系统的资源限制,开发人员应该仔细选择需要包含在静态库中的功能,并避免引入不必要的依赖关系。需要注意的是,由于嵌入式系统的资源限制,开发人员应该仔细选择需要包含在静态库中的功能,并避免引入不必要的依赖关系。的静态库文件,可以在嵌入式系统的应用程序中使用它了。 阅读详情

代码随想录day4

两两交换链表中的节点

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。
在这里插入图片描述

思路

模拟链表交换节点操作
递归实现

class Solution {
    // 递归实现
    public ListNode swapPairs(ListNode head) {
        if(head == null ||  head.next == null)
            return head;
        ListNode next = head.next;
        ListNode nextNode = swapPairs(next.next);
        next.next = head;
        head.next = nextNode;
        return next;
    }
}

借助于虚拟头结点模拟三步交换操作
在这里插入图片描述

class Solution {
    // 模拟交换实现
    public ListNode swapPairs(ListNode head) {
        ListNode dummy = new ListNode(-1);
        dummy.next = head;
        ListNode cur = dummy;
        while(cur.next != null && cur.next.next != null){
        	// 保存中间变量
            ListNode tmp = cur.next.next.next;
            ListNode first = cur.next;
            ListNode second = cur.next.next;
            // 三步操作
            cur.next = second;
            second.next = first;
            first.next = tmp;
            cur = first;
        }
        return dummy.next;
    }
}

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

给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。
在这里插入图片描述

思路

先得出链表长度,再去寻找需要删除的节点 – 遍历查找

class Solution {
    public ListNode removeNthFromEnd(ListNode head, int n) {
        ListNode cur = head;
        int size = 0;
        while(cur != null){
            size++;
            cur = cur.next;
        }
        // 是否删除头结点
        if(size == n)
            return head.next;
        cur = head;
        // 找到前一个节点
        for(int i = 0;i < size - n - 1;i++){
            cur = cur.next;
        }
        ListNode nextnext = cur.next.next;
        cur.next = nextnext;
        return head;
    }
}

双指针思想:双指针的经典应用,如果要删除倒数第n个节点,让fast移动n步,然后让fast和slow同时移动,直到fast指向链表末尾。删掉slow所指向的节点就可以了。

class Solution {
    // 双指针
    public ListNode removeNthFromEnd(ListNode head, int n) {
        // 借助虚拟头节点
        ListNode dummy = new ListNode(-1,head);
        ListNode slow = dummy,fast = dummy;
        // 让快指针先走N+1步,这样让slow节点位于需要删除节点的前一个
        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 dummy.next;
    }
}

注意:删除第N个节点,那么我们当前遍历的指针一定要指向 第N个节点的前一个节点

环形链表 II

给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。

如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。

不允许修改 链表。

思路

快慢指针思想:先判断是否有环。
若有环,经过数学追击思维分析,可知:
双指针第二次相遇:

令 fast 重新指向链表头部节点。此时 f=0,s=nb。
slow 和 fast 同时每轮向前走 111 步。
当 fast 指针走到 f=a步时,slow 指针走到 s=a+nb	步。此时两指针重合,并同时指向链表环入口,返回 slow 指向的节点即可。
public class Solution {
    public ListNode detectCycle(ListNode head) {
        ListNode slow = head,fast =head;
        while(fast != null && fast.next != null){
            slow = slow.next;
            fast = fast.next.next;
            // 第一次相遇
            if(slow == fast){
                fast = head;
                while(slow != fast){
                    slow = slow.next;
                    fast = fast.next;
                }
                return fast;
            }

        }
        return null;
    }
}
Python爬虫实战:使用Scrapy+Playwright高效爬取全球石油价格历史数据 python复制下载# 产品信息# 日期信息# 价格数据price = scrapy.Field() # 收盘价open = scrapy.Field() # 开盘价high = scrapy.Field() # 最高价low = scrapy.Field() # 最低价volume = scrapy.Field() # 交易量change_percent = scrapy.Field() # 涨跌幅# 元数据。 阅读详情

相关推荐

NHANES数据库实战:数据合并与加权分析技巧

本文详细解析了NHANES数据库实战中的核心技巧,重点阐述了数据合并与加权分析的正确方法。通过两个具体案例,手把手指导如何从数据下载、合并、权重计算到使用R语言survey包进行加权统计分析,避免因忽略复杂抽样设计而导致的研究偏倚,确保分析结果的准确性与可发表性。

weixin_29057065的博客 585

代码随想录训练Day4[链表]

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回。让两个指针同时移动,如果一个指针移动到头,那就将他转到另一个。,返回链表开始入环的第一个节点。给你一个链表,删除链表的倒数第。个结点,并且返回链表的头结点。给你两个单链表的头节点。给定一个链表的头节点。如果链表无环,则返回。

2302_77073920的博客 488

安装cartographer,跑官网数据集

今天开始写一个关于google cartographer系列文章。此类文章网上已经很多,本系列文章主要记录重点部分及容易踩坑地方。 cartographer是一个完整的激光SLAM开源项目,属于graph slam,包含了完整的前端里程计和后端地图优化,既能够同时定位建图,又能够基于先验地图进行独立全局定位。 值得 目录 一、推荐首选看官网资料,已经很详细了 二、安装 三、源码文件架构 四、跑数据集 1、建图 2、基于先验地图的全局定位 一、推荐首选看官网资料,已经很详细了 原生版:

qq_18276949的博客 6144

代码随想录day4链表2

双指针做法:双指针的经典应用,如果要删除倒数第n个节点,让fast移动n步,然后让fast和slow同时移动,直到fast指向链表末尾。删掉slow所指向的节点就可以了。所以我们只要找到 第一个 A == B 的地方,即它们指向同一个内存地址(不是值相等,而是节点地址相等)。链表相交的意思是:从某个节点开始,两条链表共享后续所有节点(即它们的 next 指针完全一致)。所以 A == B 判断的就是这个内存地址相等,而不是。

皮蛋瘦肉粥的博客 215

最新版 Akamai 逆向 风控破解

经过测试,捷星 jetstar.com,德州仪器 ti.com,w6 wizzair.com,还有一些航空公司的都是可以实现一个并发的有需要的可以。

m0_72605044的博客 6623

Springboot项目中使用邮箱验证码注册登录的代码实现

本文介绍了在Spring Boot应用中实现邮箱验证码注册和登录功能的完整方案。文章首先概述了三种用户认证方式(邮箱验证码注册/登录和传统密码登录),然后详细说明了实现所需的技术栈(Spring Boot、Spring Security、JWT等)。重点阐述了邮件服务配置、验证码生成与存储的核心实现,包括QQ邮箱授权码获取、Thymeleaf邮件模板处理以及验证码缓存管理。最后展示了发送验证码和用户注册的API实现,为开发者提供了完整的参考方案。该方案兼顾安全性和用户体验,适合现代Web应用的用户认证需求。

BXCQ_xuan的技术专栏 | 实战干货·实践教程·学习笔记 1340

代码随想录 day4|两两交换链表中的节点、删除链表的倒数第 N 个结点、 面试题 02.07. 链表相交、环形链表II

题目链接:https://leetcode.cn/problems/swap-nodes-in-pairs/description/

qq_35813673的博客 1028

Modbus4J vs EasyModbus4J:哪个Java库更适合你的工业项目?

本文深入对比了Java领域两大Modbus通信库Modbus4J与EasyModbus4J。Modbus4J设计稳健、类型安全,适合复杂业务集成;EasyModbus4J基于Netty,在高并发场景下性能更优。文章从架构、性能、API及生产环境多维度分析,为工业物联网项目选型提供决策依据。

weixin_28475533的博客 310

代码随想录算法训练营 DAY4 |链表(交换、快慢指针与环形检测)

如果说昨天的链表练习是入门,那今天就是真正的进阶了。今天的任务列表充满了经典的难题,每道题都像一个精巧的谜题,解开它不仅需要代码能力,更需要巧妙的算法思维。指针的交错飞舞,让我深刻感受到了链表的魅力。: 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。今天的练习让我对链表的理解又上了一个台阶。的各种高级应用,尤其是在快慢指针和环形链表上的应用,非常烧脑但收获巨大。: 给定一个链表,返回链表开始入环的第一个节点。链表章节的总结,我也会参考 Carl 哥的文章,整理出自己的框架。

m0_54812357的博客 926

LAMMPS实战:如何用ReaxFF力场模拟碳氢化合物热解(附完整脚本)

本文提供了一份使用LAMMPS软件中ReaxFF反应力场模拟碳氢化合物热解过程的完整实战指南。内容涵盖从环境准备、力场参数选择、能量最小化,到升温恒温动力学模拟的完整脚本编写,并介绍了基于轨迹文件的产物分析方法,帮助计算化学与材料科学研究者快速上手这一关键的分子动力学仿真技术。

soda5的博客 1099

基于STM32的智能血氧、心率、体温、血压监测系统

摘要:本文设计了一款基于STM32F103C8T6的多功能健康监测系统,可实时检测血氧、心率、体温和血压四项生理参数。系统集成MAX30102、DS18B20等传感器模块,采用OLED显示和蓝牙无线传输技术,实现一键血压测量、阈值报警及手机APP数据管理功能。硬件设计包含传感器采集、电源管理、显示报警等模块;软件采用模块化架构,实现数据采集处理、蓝牙通讯等功能。测试表明系统测量准确可靠,为家庭健康监测提供了便携解决方案。未来可扩展更多监测参数和智能分析功能。

3254968421的博客 771

代码随想录day4 链表

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。还是新建一个虚拟元节点(dummy),因为涉及到了交换操作。注意跳出循环条件,避免访问空指针中的内容。

Hoshinoharuka的博客 1063

某易将军令口令纯算法还原py篇

算法开源,将军令口令算法。希望官方多多更新吧

任雪飘的博客 3909

代码随想录 day4链表

day4链表

luckyme_的博客 1843

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

代码随想录day4 链表进阶

对于交换指针来说,需要使用虚拟头结点的方法,因为需要知道要交换元素的前一个元素是啥,继而连接到其下一个元素,另外,按照图中所示,当虚拟头结点连接到2前,要把1、3都保存下来,因为链路会断。从上述等式中可以看出,x比z多了n-1个环的路程,也就是说,从头结点出发一个指针,从相遇节点 也出发一个指针,这两个指针每次只走一个节点, 那么当这两个指针相遇的时候就是环形入口的节点,那么在两指针相遇时可以设pos1 = head;// 快指针走两步,慢指针走一步,这样快比慢每次只多一步,在套圈的过程中不会漏掉慢指针。

2301_80817427的博客 1169

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

代码随想录刷题训练营Day4-- 24. 两两交换链表中的节点、19.删除链表的倒数第N个节点 、 面试题 02.07. 链表相交 、142.环形链表II

自己没做出来,看的视频完成,没有什么花里胡哨的地方,主要是保存节点使用,画图直观。

一位复制者 647

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

代码随想录算法训练营Day4(LeetCode24 两两交换链表中的节点;LeetCode19 删除链表的倒数第N个节点;面试题02.07 链表相交;LeetCode142 环形链表II)

反而使得我对指针为空的判断变得更加复杂了,看了代码随想录发现只需要一个。这道题需要使用双节点,遍历一遍就可以了。我在做的时候,第一次返回了。这道题不难但是还是看了题解思路才写出来的,而且有一些冗余变量。这道题直接写出来了,但是一开始用了很多指针,用于表达。这道题看了题解,关键在于要理解第一次相遇时,,但是这个节点可能被删除了,因此需要返回。的交换来减少,这里的细节还需要注意。变量,这样反而将为空判断全部放到。

weixin_51001256的博客 1284

代码随想录算法训练营Day4 | Leetcode 24两两交换链表中的节点 、19删除链表的倒数第N个节点 、 142环形链表II、 面试题 02.07. 链表相交

Leetcode 24两两交换链表中的节点 、19删除链表的倒数第N个节点 、 142环形链表II、 面试题 02.07. 链表相交的思路细节及复杂度分析

叽里呱啦大王的博客 1237

代码随想录Day 4 链表

链表刷题记录

weixin_43871520的博客 436

代码随想录 day4 链表2

如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。给定一个链表的头节点 head ,返回链表开始入环的第一个节点。输入:head = [3,2,0,-4], pos = 1。输入:head = [1,2], pos = 0。解释:链表中有一个环,其尾部连接到第二个节点。解释:链表中有一个环,其尾部连接到第一个节点。

qq_40445763的博客 477

【代码随想录训练营】Day4-链表

代码随想录训练营第4天,加油

weixin_38255385的博客 4035

[代码随想录] day4—链表

思路:迭代法设置哑节点,定义一个结点node保存两个节点中前一个节点的值,定义cur用来改变节点的值。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6VqOJNNH-1682175260761)(C:\Users\ON\AppData\Roaming\Typora\typora-user-images\image-20230422223708046.png)]

m0_53658746的博客 446

day3-day4 代码随想录:链表篇 C

day3-day4 代码随想录:链表篇 C,个人学习记录

weixin_44877265的博客 1155

代码随想录Day4:链表

自己写的0指2,1指3,然后2再指1,这样可以少一个中间量 差灵山爱抚的题解这样写,这样所有节点都变变量表示更加清晰,值得学习感谢爱抚,欢迎关注 B站@灵茶山艾府 快慢指针,如果先遍历算长度size,在遍历size-n,是两层 如果用快慢指针,让右指针先动n,再左右一起动,把后n转换成前n代码参考了爱抚大人,爱抚大人的编码风格真的爱了,写的简直太漂亮了,想谈 方法一先把B移动到跟A末尾对齐,再找相同的,方法二很巧妙,如果有相同的,那走都过两边A+B的路程是一样的 快指针两步两步的

qq_45890831的博客 686

代码随想录day4 | 链表

先让快指针走n步,接着慢指针和快指针保持这个距离一起移动,直到快指针是最后一个结点,此时慢指针的下一个结点即要删除的结点。A从起点走到环入口,B从相遇结点绕环n(n>=1)圈载走z这么长,最后和A在环入口相遇,据此可求入口节点。因为相交链表是两链表从某一结点开始到末尾都相同,所以相交链表长度一定小于或等于比较短的链表的长度。先用双指针法,选取较长链表中,与较短链表长度一样的,且处于最末的子链表。逐一比较选取的子链表和较短链表中的每个节点,返回符合要求的节点的值。该式可理解,有两指针A和B,每次走一步。

ohyeeeeeep的博客 505

代码随想录(day4)——链表

本题较为简单,在题干中可以看到,系统给定的样例存在空链表,因此,为了避免空链表造成的访问错误,本题也采用人为添加哨兵位头结点的方式。在演示了上述过程后,不难看出,如果想要交换两个结点需要在这两个结点中,靠前一个结点的前一个结点最为起始结点开始操作,对于上述链表,如果想要对。结点后,进行下一次交换操作的起始结点应该为链表中的第四个结点。因此,对于链表中结点个数为奇数个的情况,应该检查结点的下下个结点是否为空。但是,这种情况只适用于链表中的结点为偶数个。结点操作后,下一次进行操作的起始结点的位置在链表中的第。

2301_76836325的博客 1096
上一篇: 代码随想录day3
下一篇: 01-创建简单的Bean容器
Strongwind_
博客等级 码龄7年 139粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值