题目1505:两个链表的第一个公共结点
时间限制:1 秒
内存限制:128 兆
特殊判题:否
提交:360
解决:94
-
题目描述:
-
输入两个链表,找出它们的第一个公共结点。
-
输入:
-
输入可能包含多个测试样例。
对于每个测试案例,输入的第一行为两个整数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> #define MAXN 10000 int arr1[MAXN],arr2[MAXN]; int main() { int m,n; while(scanf("%d %d",&m,&n)!=EOF){ for(int i=0;i<m;i++) scanf("%d",&arr1[i]); for(int i=0;i<n;i++) scanf("%d",&arr2[i]); if(m>n){ int i=0; while(arr1[m-n+i]!=arr2[i]) i++; if(i<n) printf("%d\n",arr2[i]); else printf("My God\n"); } else{ int i=0; while(arr2[n-m+i]!=arr1[i]) i++; if(i<m) printf("%d\n",arr1[i]); else printf("My God\n"); } } return 0; } /************************************************************** Problem: 1505 User: 3011216016 Language: C++ Result: Accepted Time:70 ms Memory:1100 kb ****************************************************************/