九度OJ 1505 两个链表的第一个公共结点 【数据结构】
2014-03-02 16:04
435 查看
题目地址:http://ac.jobdu.com/problem.php?pid=1505
题目描述:
输入两个链表,找出它们的第一个公共结点。
输入:
输入可能包含多个测试样例。
对于每个测试案例,输入的第一行为两个整数m和n(1<=m,n<=1000):代表将要输入的两个链表的元素的个数。
接下来的两行,第一行为第一个链表的所有元素,中间用空格隔开。第二行为第二个链表的所有元素,中间用空格隔开。
输出:
对应每个测试案例,
输出两个链表的第一个公共结点的值。
如果两个链表没有公共结点,则输出“My God”。
样例输入:
样例输出:
参考资料:何海涛 -- 程序员面试题精选100题(35)-两链表的第一个公共结点[数据结构]
题目描述:
输入两个链表,找出它们的第一个公共结点。
输入:
输入可能包含多个测试样例。
对于每个测试案例,输入的第一行为两个整数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; }
参考资料:何海涛 -- 程序员面试题精选100题(35)-两链表的第一个公共结点[数据结构]
相关文章推荐
- 九度OJ 1505 两个链表的第一个公共结点 【数据结构】
- 九度OJ-题目1505:两个链表的第一个公共结点
- 【剑指Offer面试编程题】题目1505:两个链表的第一个公共结点--九度OJ
- 【剑指Offer面试编程题】题目1505:两个链表的第一个公共结点--九度OJ
- 剑指Offer - 九度1505 - 两个链表的第一个公共结点
- 九度题目1505:两个链表的第一个公共结点
- 九度题目1505:两个链表的第一个公共结点
- 题目1505:两个链表的第一个公共结点-九度
- 题目1505:两个链表的第一个公共结点
- 九度 题目1505:两个链表的第一个公共结点
- 【九度】题目1505:两个链表的第一个公共结点
- 剑指offer- 题目1505:两个链表的第一个公共结点 (2014.1.1)
- 【九度OJ1505】|【剑指offer37】两个链表的第一个公共结点
- 两个单向链表,找出它们的第一个公共结点
- IMWeb提升营Day6 | 训练题36:两个链表的第一个公共结点
- 剑指offer 37---求两个链表的第一个公共结点
- [转] 程序员面试题精选100题(35)-找出两个链表的第一个公共结点
- JAVA: 两个链表的第一个公共结点
- 剑指offer系列源码-两个链表的第一个公共结点
- 链表是否存在环及环入口点、两个链表是否相交、相交链表的第一个公共结点