#include<bits/stdc++.h>
using namespace std;
const int MAXN=100001;
struct Node{
char data;
int next;
int add;
}node[MAXN];
int main()
{
freopen("in.txt","r",stdin);
int start1,start2,n;
scanf("%d%d%d",&start1,&start2,&n);
for(int i=0;i<n;i++){
int address;
scanf("%d",&address);
node[address].add=address;
cin>>node[address].data;
scanf("%d",&node[address].next);
}
map<int,int> mp;
for(int i=start1;i!=-1;i=node[i].next){
mp[i]=1;
}
int temp=0;int flag=0;
for(int i=start2;i!=-1;i=node[i].next){
if(mp[i]==1){
flag=1;printf("%05d",i);break;
}
}
if(flag==0){
cout<<-1;
}
return 0;
}
for(int i=0;i<n;i++){
int address;
scanf("%d",&address);
char a;int next1;
scanf(" %c %d",&a,&next1);
node[address]={a,next1,address};
}
%c输入字符的时侯,前后的空格是个坑
本文介绍了一种基于链表的交集查找算法,通过使用哈希映射和双链表遍历的方法,在O(n)的时间复杂度内找出两个链表的交集地址。文章详细解释了算法的实现步骤,并提供了完整的C++代码示例。
1680

被折叠的 条评论
为什么被折叠?



