数据结构算法大题---线性表03题
2021/9/15 1:05:30
本文主要是介绍数据结构算法大题---线性表03题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
分析: 这道题不用构建链表,只找出两个链表第一个公共节点即可。
思路: 可声明两个节点指针p、q,计算出两个链表的长度,并计算它们的差,然后让节点指针指向长度较长的链表并使该指针后移,直到与另一个较短的链表等长,最后让两个指针同时后移,当两个指针指向同一个地址时,该地址即为所要寻找的两个链表共同后缀的起始位置。
代码如下:
LNOde* findPublicCommon(LinkList str1,LinkList str2) { LNode *p,q; int length1=length(str1);//计算链表str1的长度 int length2=length(str2);//计算链表str2的长度 for(p=str1;length1>length2;length1--)//若p指向的链表长度大于q指向的链表,则使p后移,直到与q指向的链表等长 { p=p->next; } for(p=str2;length2>length1;length2--)//若q指向的链表长度大于p指向的链表,则使q后移,直到与p指向的链表等长 { q=q->next; } while(p->next!=NULL && p->next!=q->next) { //两个指针同时向后移动 p=p->next; q=q->next; } return p->next;//返回要查找的位置 }
这篇关于数据结构算法大题---线性表03题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南