首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
单链表有环,是指单链表的最后一个结点的指针指向了链表中的某个结点(通常单链表的最后一个结点的指针域是为空的)。试编写算法判断单链表是否存在环。 (1)给出算法的基本设计思想。 (2)根据设计思想,采用C或C++语言描述算法,关键之处给出注释
单链表有环,是指单链表的最后一个结点的指针指向了链表中的某个结点(通常单链表的最后一个结点的指针域是为空的)。试编写算法判断单链表是否存在环。 (1)给出算法的基本设计思想。 (2)根据设计思想,采用C或C++语言描述算法,关键之处给出注释
admin
2018-07-17
65
问题
单链表有环,是指单链表的最后一个结点的指针指向了链表中的某个结点(通常单链表的最后一个结点的指针域是为空的)。试编写算法判断单链表是否存在环。
(1)给出算法的基本设计思想。
(2)根据设计思想,采用C或C++语言描述算法,关键之处给出注释。
(3)说明你所设计算法的时间复杂度和空间复杂度。
选项
答案
(1)算法的基本设计思想: 设置两个指针(slow,fast),初始时都指向头结点,slow每次前进1步,fast每次前进2步。如果链表存在环,则fast必定先进入环,而slow后进入环,两个指针必定相遇。当然,当fast先进入到尾部为NULL,则说明链表中不存在环。 (2)算法的实现如下: bool IsExitsLoop(list *head) { list*slow=head, *fast=head; //定义两个指针 while(fast&&fast—>next) //都不空 { slow=slow—>next; fast=fast—>next—>next, if(slow==fast) //相遇,存在环 break; } return !(fast==NULL||fast—>next==NULL); } 当fast若与slow相遇时,slow肯定没有走遍历完链表,故算法的时间复杂度为O(N),空间复杂度为O(1)。
解析
转载请注明原文地址:https://kaotiyun.com/show/f8Ri777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
完成于南北朝时期的史学作品不包括()
毛泽东在《论持久战》中指出,中国抗日战争取得最后胜利最为关键的阶段是()。
关于德国工业革命,说法不正确的是()。
开皇三年,隋文帝下令州县官吏根据户籍簿上登记的年龄,来核对本人体貌,以防诈老诈小逃避租役,是为()。
秦始皇征服居住在今温州一带的东瓯和福建境内的闽越后,建置()郡。
不属于第三次科技革命新特点的选项是()。
主张对义和团实行安抚策略的是()。
1977年4月,对“两个凡是”提出批评,开全党思想解放先河的是()。
[*]对应的微指令如下:ADD01XX1010000010XX10010000XX1001001001MOV00XX10100010XX1101001001
现有一个解决无向连通图的最小生成树的一种方法如下:将图中所有边按权重从大到小排序为(el,e2,…,em);i=1;while(所剩边数>=顶点数){从图中删去ei;若图不再连通。则恢复ei;i=
随机试题
企业收集一手资料的过程中,以下哪种方法最完整,最富灵活性?
青光眼病人术后随诊应注意
无并发症的肺炎球菌肺炎最主要的治疗措施是( )
某市一栋普通办公楼为砖混结构3000m3,一般土建工程单位造价为970元/m2,其中毛石基础为39元/m3,而今拟建一栋办公楼3500m3,采用钢筋混凝土带形基础为51元/m3,其他结构相同。该拟建办公楼一般土建工程概算编制适合采用()
甲有限责任公司(以下简称“甲公司”)为一家从事机械制造的增值税一般纳税企业。2020年1月1日所有者权益总额为5400万元,其中实收资本4000万元、资本公积400万元、盈余公积800万元、未分配利润200万元。2020年度甲公司发生如下经济业务: (1
为缩小城乡差别、促进城乡经济协调发展,政府提供必要的制度保证和政策支持,体现了政府的()职能。
保险的基本职能是()。
求级数的和。
DBMSqp实现事务持久性的子系统是——。
Onlyfiveyearsago,there______ashortageofcomputerspecialists.
最新回复
(
0
)