jjzjj

训练营第四天 | 24. 两两交换链表中的节点,19.删除链表的倒数第N个节点,面试题 02.07. 链表相交,142.环形链表II

24.两两交换链表中的节点题目要点:该题主要考察对结点指针的把握情况,要能够熟练运用结点的交换,临时结点的创建。做题时把图画出来就一目了然。注意:1.注意遍历的停止条件 cur->next != nullptr && cur->next->next != nullptr,该条件是while里的,注意和if里的区分。2.在结点交换时要明白结点的指向只能有一个,一旦更改,原先指向的结点就找不到了,注意先用临时结点保存再更改。19.删除链表的倒数第N个节点题目要点:利用双指针的思想,左右指针好比是一把尺子,让右指针先走n+1步是为了做出尺子的长度,遍历完后左指针正好在要删除的结点左侧(n+1的功劳)

Day 4 链表: 24. 两两交换链表中的节点, 19.删除链表的倒数第N个节点, 面试题 02.07. 链表相交 ,142.环形链表II

我经常搞混的点:1.first=first.next表示的是移动first指针的位置。如果写first.next=first.next.next,则表示的是更改链表结构,这会跳过first指针的下一个节点,改变链表本身的结构。因此我区分清楚:仅仅需要移动first指针的位置,需要更改链表的结构。2. whilefirst:和whilefirst.next:都是判断条件,两者有不同的含义。whilefirst::判断的是first指针是否存在。只要first指针指向的节点(包括最后的None)存在,循环就会继续。whilefirst.next::判断的是first指针的下一个节点是否存在。只有当

算法训练营第四天|24. 两两交换链表中的节点| 19.删除链表的倒数第N个节点| 面试题 02.07. 链表相交| 142.环形链表II

24.两两交换链表中的节点这道题目正常模拟就可以了。建议使用虚拟头结点,这样会方便很多,要不然每次针对头结点(没有前一个指针指向头结点),还要单独处理。对虚拟头结点的操作,还不熟悉的话,可以看这篇链表:听说用虚拟头节点会方便很多?(opensnewwindow)。接下来就是交换相邻两个元素了,此时一定要画图,不画图,操作多个指针很容易乱,而且要操作的先后顺序初始时,cur指向虚拟头结点,然后进行如下三步:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SQAAnGzq-1686641211499)(https://code-thinking.cdn.bcebos.

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

24. 两两交换链表中的节点:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 19.删除链表的倒数第N个节点 给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。 160.链表相交:给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 142.环形链表II:给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回null。 

代码随想录算法训练营第4天 | 24. 两两交换链表中的节点 19.删除链表的倒数第N个节点 160 142

#24耗时1h自己想+写,链表这块熟练度欠佳,顺序老想不清过程中几个调整:1.经常纠结要不要dummy,结果这题还是要(我真有点判断不出什么时候要/不要)2.有dummy时返回要是dummy->next3.调while里面那段的顺序调了半天,一定要画图画图画箭头4.while条件我也想了半天ListNode*swapPairs(ListNode*head){ListNode*dummy=newListNode(0,head);ListNode*curr=dummy;ListNode*tmp1,*tmp2;if(curr->next==NULL||curr->next->next==NULL){

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

今日任务:24.两两交换链表中的节点19.删除链表的倒数第N个节点面试题02.07.链表相交142.环形链表II状态:1刷文章目录前言一、24.两两交换链表中的节点二、19.删除链表的倒数第N个结点三、面试题02.07.链表相交方法1方法2四、142.环形链表II总结前言链表多考虑用虚拟头结点,这样会方便很多,双指针的操作注意,删除第N个节点,那么我们当前遍历的指针一定要指向第N个节点的前一个节点一、24.两两交换链表中的节点题目:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换思路:虚拟头节点+画图,要厘清指针顺序代码:c

S32K142 MCU锁死解锁

S32K142MCU锁死解锁本文主要介绍S32K142MCU锁死(Jlink报错:0x400-0x40Findicatethatreadoutp’rotectionisset)的原因简介以及如何使用J-LinkCommander工具解🔒。一、故障现象二、原因分析基于S32K144的芯片锁死,一般有如下几种可能:  1.时钟配置异常,MCU被倍频以及不配置时钟,都有可能造成芯片保护锁死,我就曾经因为不注意把时钟配置代码注释掉,导致芯片锁死。、  2、烧写断电,如果在Debug的时候不小心导致芯片断电,这种情况也有可能导致芯片锁死。  3、修改0X400-0X40F地址内容。  4、某些操作不规范

[C/C++/C#] error MSB8020: 无法找到 v142 的生成工具(平台工具集 =“v142”)。若要使用 v142 生成工具进行生成,请安装 v142 生成工具

errorMSB8020:无法找到v142的生成工具(平台工具集=“v142”)。若要使用v142生成工具进行生成,请安装v142生成工具。问题的原因是由于没有安装v142工具集,其实v142对应的是VS2019,项目从另外一台电脑copy过来的,之前的编译器VS2019,现在是VS2017,所以报的这个错误。v142–>VS2019v141–>VS2017v140–>VS2015v120–>VS2013方法一:修改成现在编译器对应的工具集项目–>属性—>常规–>平台工具集–>选择对应的方法二:新建一个C++项目,移植代码(即复制原项目中.cpp.h中的代码粘贴到新建项目中)

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

24.两两交换链表中的节点题目:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。示例1:输入:head=[1,2,3,4]输出:[2,1,4,3]示例2:输入:head=[]输出:[]示例3:输入:head=[1]输出:[1]思路:建议使用虚拟头结点,这样会方便很多,要不然每次针对头结点(没有前一个指针指向头结点),还要单独处理。初始时,cur指向虚拟头结点,然后进行如下三步:代码:/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListN

代码随想录第四天 142.环形链表II面试题|| 02.07. 链表相交||19.删除链表的倒数第N个节点

142.环形链表题意:给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回null。为了表示给定链表中的环,使用整数pos来表示链表尾连接到链表中的位置(索引从0开始)。如果pos是-1,则在该链表中没有环。这个问题,可以用图示法来解决:(1)首先慢指针在环内的第一圈和快指针相遇(2)慢指针在环内经过n圈与快指针相遇,(其实无论转多少圈,和(1)效果是一样的)                     快指针走过的长度为x+y+n*(z+y)                        慢指针走过的长度为x+y                          x+y+n*(x+y