考点介绍:
链表是一种逻辑简单的、实用的数据结构,几乎被所有程序设计语言支持。单链表的操作算法是笔试面试中较为常见的题目。
测试算法考点之链表-相关题目及解析内容可点击文章末尾链接查看!
一、考点题目
1.一个长度为n的单向链表,用O(1) 空间复杂度来实现倒转输出,使用最低时间复杂度
解答:思路:
读题(反射)
单向链表,直接设结点 Node head; 要倒转就需要重置链接,设记忆结点 Node p
空间复杂度为O(1) ,就是不能使用新的空间-》一边遍历,另一边不断加结点......
2.如果单链表中是有环,请找到环的入口点
解答:思路:
这是【单链表中是否有环,写出代码】的扩展题,可以划分到面试中难度最大的那一档中
没有思路,只能静下心来找环的入口点,就是找到入口点是链表的第几个结点,设这个结点q是第a个......
3.如何判断两个单链表是否相交 ?
解答:法1
对链表1中的每个节点p1,判断链表2中是否有一个节点p2指向p1
loop:p1从head1到最后一个节点
loop:p2从head2到最后一个节点......
二、考点文章
1.判断两个单链表是否相交及找到第一个交点
题目:给两个单链表,如何判断两个单链表是否相交?若相交,则找出第一个相交的节点。
这道题的思路和解法有很多,在这把这道题的解法做一个详细的总结......
2.【精挑细讲】这5道链表相关算法题,将助你告别链表问题
1、如何优雅着反转单链表
2、环形单链表约瑟夫问题最优解
3、三种方法带你优雅判断回文链表......
三、考点视频
直接插入排序和最佳复杂度
本题是校招的常见考点之一,这里考察的是简单排序的直播插入排序。首先要对熟悉排序算法本身,不要把选择和插入搞混。其次是针对每一轮的排序,考虑最少的比较次数是多少......
测试算法考点之链表-相关题目及解析内容可点击下方链接查看:
测试算法考点之链表--移动端链接
测试算法考点之链表--PC端链接