链表(1)面试题汇总

序言

1.永远不要沉迷碎片化的知识

2.谨慎播撒你的精力种子

3.改变我们的人生的,不单单是道理,还有方法

面试题

1、单链表的创建和遍历

2、求单链表中节点的个数

3、查找单链表中的倒数第k个结点(剑指offer,题15)

4、查找单链表中的中间结点

5、合并两个有序的单链表,合并之后的链表依然有序【出现频率高】(剑指offer,题17)

6、单链表的反转【出现频率最高】(剑指offer,题16)

7、从尾到头打印单链表(剑指offer,题5)

8、判断单链表是否有环

9、取出有环链表中,环的长度

10、单链表中,取出环的起始点(剑指offer,题56)。本题需利用上面的第8题和第9题。

11、判断两个单链表相交的第一个交点(剑指offer,题37)

给出一个链表[1, 2, 3, 4, 5]

反转为[5, 4, 3, 2, 1]

在对链表进行操作时,一种常用的技巧是添加一个哑节点(dummy node),它的 extit{next}next 指针指向链表的头节点。这样一来,我们就不需要对头节点进行特殊的判断了。

迭代反转链表

递归反转链表

头插法反转链表

所谓头插法,是指在原有链表的基础上,依次将位于链表头部的节点摘下,然后采用从头部插入的方式生成一个新链表,则此链表即为原链表的反转版

就地逆置法反转链表

资料

http://c.biancheng.net/view/8105.html

https://www.cnblogs.com/qianguyihao/p/4782595.html

原文地址:https://www.cnblogs.com/cnki/p/13869266.html