【校招VIP】算法考点之链表题型解析
考点介绍
单链表题型是校招算法考察中出现频度比较高的一种,中小公司一般从指针的交换方向考察;一二线公司从单双指针、复杂度、环的问题角度考察。
本期分享的算法考点之链表题型解析,分为试题、文章以及视频三部分。
答案解析和文章详情可扫下方二维码或点击链接获取!
一、考点题目
1.在一个单链表中,已知q结点是p结点的前趋结点,若在q和p之间插入s结点,则须执行()
A.s->next=p->next; p->next=s
B.s->next=p;q->next=s;
C.p->next=s->next; s->next=p
D.p->next=s; s->next=q
正确答案: B。q->next=s表示将q与p之间断链,q指向s,s->next=p表示将s指向p,把链连接起来
2.有一个双向链表,结点有两个指针域,llink和rlink分别指向前趋及后继,链中结点数大于2,设p指向链表中的一个结点,且p不是第一个结点。现要求删去p所指结点,则正确的删除是
A.p->llink->rlink=p->llink; p->llink->rlink=p->rlink;dispose(p);
B.dispose(p);p->llink->r1ink=p->llink; p->llink->rlink=p->rlink;
C.p->llink->rlink=p->llink; dispose(p);p->llink->r1ink=p->rlink;
D.p->llink->rlink=p->rlink:;p->rlink->llink=p->llink;dispose(p);
正确答案:D
3.一个长度为n的单向链表,用O(1) 空间复杂度来实现倒转输出,使用最低时间复杂度
解答:空间复杂度为O(1),只能一次取一个结点,并把它的next结点指向第一个结点,具体分析,可以从1个结点入手,再到2个结点,3个结点……
4.找出单链表的中间元素,要求用时最少
解答:正常的话,需要先遍历一圈,得到链表长度。再从头遍历到1/2长度的位置。也就是走了1.5倍的链表长度……
5.判断单链表中是否有环,写出代码
解答:如果只用一个指针next的话 ,是不能知道到底有环造成一直循环还是链表长度很长造成的,而且循环了的话,程序没有终结态……
二、考点文章
1.一步一步写算法(之单向链表)
有的时候,处于内存中的数据并不是连续的。那么这时候,我们就需要在数据结构中添加一个属性,这个属性会记录下面一个数据的地址。有了这个地址之后,所有的数据就像一条链子一样串起来了,那么这个地址属性就起到了穿线连结的作用……
2.【数据结构】链表的原理及java实现
链表是一种数据结构,和数组同级。比如,Java中我们使用的ArrayList,其实现原理是数组。而LinkedList的实现原理就是链表了。链表在进行循环遍历时效率不高,但是插入和删除时优势明显。下面对单向链表做一个介绍……
三、考点视频
1.arrayList和linkedList的区别和扩容
本题是面试常考题之一,但是很多同学没有真实理解或使用过相应的类,只靠记忆。在面试的时候,容易被问住。
(考点视频扫海报二维码即可查看)
PC端专题链接:https://xiaozhao.vip/dTopic/detail/134
移动端专题链接:https://m.xiaozhao.vip/dTopic/detail/134
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律