代码随想录Day05|两两交换链表中的节点 | 删除链表的倒数第N个节点| 链表相交 |环形链表II

两两交换链表中的节点

两两交换链表中的节点

解题思路

由于是两两交换,解题的关键是临时的变量去存储next的指针,这也是昨天题目中所提到的方法。同时也用到了虚拟头节点,非常的方便。难点是在于如何判断交换结束,需要考虑next是否为空,如果后面没有凑够两个能交换的节点也需要停止。

知识点

虚拟头节点,指针,临时变量

心得

昨天学到的知识今天能用上就非常好,及时巩固,不看解析一次过.
【二刷】注意设置一个临时头节点,每一次交换后临时头节点的next需要绑定到交换完的第一个元素,每进行一次交换,临时头结点都会变成上一次交换完后的第二个结点

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

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

解题思路

这题目还是用双指针,因为要得到倒数第n个节点,所以双指针间的距离就是等于n,然后双指针同时移动,当移动到尾部的时候停下就能得到我们要的节点。

知识点

双指针,

心得

运用双指针,轻松解除,移除的时候遇到了一些问题但不要紧。

链表相交

链表相交

解题思路

创建两个指针指向两个链表的相同起始下标,然后同时移动,当指针地址相同就是相交的结点

知识点

指针,双指针

心得

一开始想到用比较指针的方法,但是不知道如何找到交点,后来看了题解就豁然开朗,需要记下这种解法。

环形链表II

环形链表II

解题思路

用快慢指针来判断是否循环,快指针一次移动两个,慢指针一次移动一个。难的地方是如何判断交点,代码随想录详细的解释了解题过程。

知识点

指针,双指针

心得

一开始想到用快慢指针来判断是否循环,但是不知道如何找到交点,后来看了题解就豁然开朗,看来数学这方面也很重要。

posted @ 2024-06-26 03:49  不进育碧不改名  阅读(244)  评论(0编辑  收藏  举报