题目链接:点击打开链接
知识点笔记:
思路就是输入数据时候全部为false,然后按第一个链表走一遍,把第一个链表有的元素置为true,然后再按第二个链表走一遍,碰见第一个true就直接return 0退出程序
scanf("%d %c %d",&address,&data,&next); 这里输入必须加空格
AC代码:
#include <cstdio>
using namespace std;
const int maxn=100000;
struct Node{
char key;
int next;
bool flag;
}node[maxn];
int main() {
int first1,first2,n,address,next;
scanf("%d%d%d",&first1,&first2,&n);
char data;
for(int i=0;i<n;i++){
scanf("%d %c %d",&address,&data,&next);
node[address]={data,next,false};
}
for(int i=first1;i!=-1;i=node[i].next) node[i].flag=true;
for(int i=first2;i!=-1;i=node[i].next){
if(node[i].flag==true){
printf("%05d",i);
return 0;
}
}
printf("-1");
return 0;
}