网课题库

两个单链表,可能相交,也可能不相交。如果相交,则从交点开始,合并为一个链表。设计一个算法那,判断两个链表是否相交,如果相交,求出相交的第一个结点。以下哪种说法正确(   )。 A:可采用以下算法实现:第一步:先将两个链表各自遍历一遍,统计出两个单链表的长度m和n。假设m>n,k=m-n第二步:长链表先走k步:用指针p从长链表头开始,先走k步,此时p指向长链表的第k+1

两个单链表,可能相交,也可能不相交。如果相交,则从交点开始,合并为一个链表。设计一个算法那,判断两个链表是否相交,如果相交,求出相交的第一个结点。以下哪种说法正确(   )。

A:可采用以下算法实现:第一步:先将两个链表各自遍历一遍,统计出两个单链表的长度m和n。假设m>n,k=m-n第二步:长链表先走k步:用指针p从长链表头开始,先走k步,此时p指向长链表的第k+1个结点。第三步:q从短链表头开始,和p一起走。p和q相等时,即为交点;如果p和q不相交,则两个链表不相交。
B:可采用以下算法实现:第一步:用两个指针p和q,分别从两个链表头开始,向后走。第二步:如果两个指针相等,即指向同一个结点,则说明相交,该结点就是交点。
C:可采用以下算法实现:第一步:将两个链表分别逆置。第二步:从头开始,什么时候链表分叉,该分叉的结点就是相交的结点。
D:该问题无法求解。
答案: 可采用以下算法实现:第一步:先将两个链表各自遍历一遍,统计出两个单链表的长度m和n。假设m>n,k=m-n第二步:长链表先走k步:用指针p从长链表头开始,先走k步,此时p指向长链表的第k+1个结点。第三步:q从短链表头开始,和p一起走。p和q相等时,即为交点;如果p和q不相交,则两个链表不相交。

本门课程完整答案:点击这里,查看 数据结构(西北大学) 中国大学mooc答案满分完整版章节测验 m106290

相关试题