【校招VIP】测试算法考点之链表算法

考点介绍:

链表是一种逻辑简单的、实用的数据结构,几乎被所有程序设计语言支持。单链表的操作算法是笔试面试中较为常见的题目。

本期分享的测试算法考点之链表算法,分为试题、文章以及视频三部分。

答案详情解析和文章内容可扫下方二维码或链接即可查看!

一、考点题目

1.  一个长度为n的单向链表,用O(1) 空间复杂度来实现倒转输出,使用最低时间复杂度

正确答案:

单向链表,直接设结点 Node head; 要倒转就需要重置链接,设记忆结点 Node p

空间复杂度为O(1) ,就是不能使用新的空间-》一边遍历,另一边不断加结点

只能通过指针的指向重置来完成反转,How??

2.  如果单链表中是有环,请找到环的入口点

正确答案:找环的入口点,就是找到入口点是链表的第几个结点,设这个结点q是第a个,

3.  如何判断两个单链表是否相交 ?

正确答案:法1

对链表1中的每个节点p1,判断链表2中是否有一个节点p2指向p1
loop:p1从head1到最后一个节点
loop:p2从head2到最后一个节点
if(p2是否指向p1)
相交
break
时间复杂度:O(list1.length * list2.length)
空间复杂度:O(1)

(答案点击下方链接或者扫海报二维码查看哦)

二、考点文章

1.  判断两个单链表是否相交及找到第一个交点

解这道题之前,我们需要首先明确一个概念:
如果两个单链表有共同的节点,那么从第一个共同节点开始,后面的节点都会重叠,直到链表结束。
因为两个链表中有一个共同节点,则这个节点里的指针域指向的下一个节点地址一样,所以下一个节点也会相交,依次类推。所以,若相交,则两个链表呈“Y”字形。

2.  【精挑细讲】这5道链表相关算法题,将助你告别链表问题

为了方便大家查找,我这里先给出个目录

1、如何优雅着反转单链表
2、环形单链表约瑟夫问题最优解
3、三种方法带你优雅判断回文链表
4、删除单链表的中间节点
5、将单向链表按某值划分成左边小,中间相等,右边大的形式
6、复制含有随机指针节点的链表
7、将单链表的每K个节点之间逆序
8、将搜索二叉树转换成双向链表
9、删除单链表的第 K个节点

(扫下方海报二维码查看完整版)

三、考点视频

直接插入排序和最佳复杂度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值