刷题Day2-链表
203. 移除链表元素
移除中间的节点其实很简单,但是移除头部节点是一段独特的逻辑。需要简化代码,同时也避免出错,设置一个虚拟头节点,把真正的头节点当作中间节点删除即可。
这种思想很有用,记得在一次面试里,也是链表相关的题,就是卡在头节点的处理逻辑上了。
707. 设计链表
没啥难度,关键在于看清题目的细节。
206. 反转链表
反转链表是最经常考的一个面试题。
92. 反转链表 II
真正有难度的反转链表是这道题。这道题要求在链表中间位置进行反转。由于头节点的问题具有特殊性,因此我们要引入虚拟头节点的思想来完成这道题。
本质上内部反转和上面的反转链表是一样的,但是由于思维经常被简单的反转链表限制,所以不太容易想到头节点的特殊情况。
24. 两两交换链表中的节点
依旧是使用虚拟头节点的思想。将头节点问题一般化。
需要注意边界条件,跳出循环的时机。
19. 删除链表的倒数第 N 个结点
又是使用虚拟头节点来让头节点问题一般化的题
142. 环形链表 II
快慢指针问题,思路是公式推导,要经常复习一下,容易忘。
另外需要注意的是,不管快慢指针走多少步,只要有环,必定会相交。

浙公网安备 33010602011771号