题目地址:http://ac.jobdu.com/problem.php?pid=1505
- 题目描述:
-
输入两个链表,找出它们的第一个公共结点。
- 输入:
-
输入可能包含多个测试样例。
对于每个测试案例,输入的第一行为两个整数m和n(1<=m,n<=1000):代表将要输入的两个链表的元素的个数。
接下来的两行,第一行为第一个链表的所有元素,中间用空格隔开。第二行为第二个链表的所有元素,中间用空格隔开。
- 输出:
-
对应每个测试案例,
输出两个链表的第一个公共结点的值。
如果两个链表没有公共结点,则输出“My God”。
- 样例输入:
-
5 4
1 2 3 6 7
4 5 6 7
3 3
1 5 7
2 4 7
2 3
1 3
4 5 6
- 样例输出:
-
6
7
My God
#include <stdio.h> int main(void){
int m, n;
int list1[1000];
int list2[1000];
int i;
int index1, index2;
while (scanf("%d%d", &m, &n) != EOF){
for (i = 0; i < m; ++i)
scanf("%d", &list1[i]);
for (i = 0; i < n; ++i)
scanf("%d", &list2[i]);
if (m >= n){
index1 = m - n;
index2 = 0;
}
else{
index1 = 0;
index2 = n - m;
}
while (index1 < m && index2 < n){
if(list1[index1] == list2[index2])
break;
++index1;
++index2;
}
if (index1 < m)
printf("%d\n", list1[index1]);
else
printf("My God\n");
} return 0;
}