题目要求
翻译
输出第一个共用的节点地址
代码
#include<iostream>
using namespace std;
struct NODE
{
int next;
char data;
bool flag;
};
NODE node[100001];
int main()
{
int f1,f2,num;
cin>>f1>>f2>>num;
int ad,da,ne;
while (num--)
{
scanf("%d %c %d",&ad,&da,&ne);
node[ad].data=da;
node[ad].next=ne;
}
int p;
for(p=f1;p!=-1;p=node[p].next)
{
node[p].flag=true;
}
for(p=f2;p!=-1;p=node[p].next)
{
if(node[p].flag==true) break;
}
if(p!=-1) printf("%05d",p);
else printf("-1");
system("pause");
}
思路
用结构体建立链表,通过flag
标记该节点是否遍历过,当从第二个起点开始遍历遇到第一个flag==true
,就是题解。