刷题Day2-链表

203. 移除链表元素

移除中间的节点其实很简单,但是移除头部节点是一段独特的逻辑。需要简化代码,同时也避免出错,设置一个虚拟头节点,把真正的头节点当作中间节点删除即可。

这种思想很有用,记得在一次面试里,也是链表相关的题,就是卡在头节点的处理逻辑上了。


707. 设计链表

没啥难度,关键在于看清题目的细节。


206. 反转链表

反转链表是最经常考的一个面试题。


92. 反转链表 II

真正有难度的反转链表是这道题。这道题要求在链表中间位置进行反转。由于头节点的问题具有特殊性,因此我们要引入虚拟头节点的思想来完成这道题。

本质上内部反转和上面的反转链表是一样的,但是由于思维经常被简单的反转链表限制,所以不太容易想到头节点的特殊情况。


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

依旧是使用虚拟头节点的思想。将头节点问题一般化。

需要注意边界条件,跳出循环的时机。


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

又是使用虚拟头节点来让头节点问题一般化的题


142. 环形链表 II

快慢指针问题,思路是公式推导,要经常复习一下,容易忘。

另外需要注意的是,不管快慢指针走多少步,只要有环,必定会相交。

 

posted @ 2022-06-14 15:23  _厨师沙拉  阅读(20)  评论(0)    收藏  举报