1032 Sharing

Ref:

http://blog.csdn.net/matrix5467/article/details/8639483

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define max 100005//不能有等号=和分号;

 

int nodes[max];
int visit[max];

int main(){
	//freopen("in.txt","r",stdin);


	memset(nodes, 0, sizeof(nodes));
	memset(visit,0,sizeof(visit));
	int s1, s2, n;
	 
	scanf("%d %d %d",&s1, &s2, &n);
	
	for(int i = 0; i < n; i++){
		int add, next;
		char data;
		scanf("%d %c %d",&add, &data, &next);
		nodes[add] = next;		 
	}

	int p = s1;
	while(p != -1){//遍历链表1
		visit[p] = 1;
		p = nodes[p];
	}

	p = s2;
	bool isFound = false;
	while(p != -1){
		if(visit[p] == 1){//遍历链表2的过程中发现有点已被访问过,则该点就是 common
			isFound = true;
			break;
		}else{
			p = nodes[p];
		}
	}

	if(isFound){
		printf("%05d",p);
	}else{
		printf("-1");
	}
	
	 
	

	return 0;
}


你可能感兴趣的:(1032 Sharing)