【剑指Offer面试编程题】题目1505:两个链表的第一个公共结点--九度OJ
来源:互联网 发布:python 打开exe程序 编辑:程序博客网 时间:2024/06/05 00:32
- 题目描述:
输入两个链表,找出它们的第一个公共结点。
- 输入:
输入可能包含多个测试样例。
对于每个测试案例,输入的第一行为两个整数m和n(1<=m,n<=1000):代表将要输入的两个链表的元素的个数。
接下来的两行,第一行为第一个链表的所有元素,中间用空格隔开。第二行为第二个链表的所有元素,中间用空格隔开。
- 输出:
对应每个测试案例,
输出两个链表的第一个公共结点的值。
如果两个链表没有公共结点,则输出“My God”。
样例输入:
5 41 2 3 6 74 5 6 73 31 5 72 4 72 31 34 5 6样例输出:
67My God【解题思路】本题应该非常经典的题目了,但这种题目我们往往有时候需要注意来输入的不止两个链表的情况,但本题目中已经很清晰的说明了只有两个链表。另外,既然是单链表,就不存在有一个节点具有多个指针指向其他节点。
那么本题还是采用经典的尾部对齐的做法,使两个链表尾部对齐后,两个链表同时开始向后扫描,若发现有一个元素值相同则表明两个链表具有相同的节点,后面的节点也就不同扫描了。若扫描完所有的节点都没有找到相同的节点,则表明两个链表不具有共同元素。
AC code:
#include <cstdio>#include <vector>#include <algorithm>using namespace std; int main(){ int m,n; vector<int> mm(1002),nn(1002); while(scanf("%d%d",&m,&n)!=EOF) { if(m>n) { for(int i=0;i<m;++i) scanf("%d",&mm[i]); for(int i=0;i<n;++i) scanf("%d",&nn[i]); }else { for(int i=0;i<m;++i) scanf("%d",&nn[i]); for(int i=0;i<n;++i) scanf("%d",&mm[i]); swap(m,n); } int midx=m-n,nidx=0; bool flg=true; while(nidx<n) if(mm[midx++]==nn[nidx++]){printf("%d\n",nn[nidx-1]);flg=false; break;} if(flg)printf("My God\n"); } return 0;}/************************************************************** Problem: 1505 User: huo_yao Language: C++ Result: Accepted Time:70 ms Memory:1024 kb****************************************************************/
题目链接:http://ac.jobdu.com/problem.php?pid=1505九度-剑指Offer习题全套答案下载:http://download.csdn.net/detail/huoyaotl123/8276299
0 0
- 【剑指Offer面试编程题】题目1505:两个链表的第一个公共结点--九度OJ
- 九度OJ-题目1505:两个链表的第一个公共结点
- 【剑指Offer面试编程题】题目1509:树中两个结点的最低公共祖先--九度OJ
- 九度OJ 1505 两个链表的第一个公共结点 【数据结构】
- 剑指offer- 题目1505:两个链表的第一个公共结点 (2014.1.1)
- 题目1505:两个链表的第一个公共结点-九度
- 【九度】题目1505:两个链表的第一个公共结点
- 九度 题目1505:两个链表的第一个公共结点
- 九度题目1505:两个链表的第一个公共结点
- 【剑指Offer面试编程题】题目1519:合并两个排序的链表--九度OJ
- 【剑指Offer面试编程题】题目1517:链表中倒数第k个结点--九度OJ
- 【剑指offer】两个链表的第一个公共结点
- 剑指offer--两个链表的第一个公共结点
- 《剑指offer》两个链表的第一个公共结点
- 剑指offer 两个链表的第一个公共结点
- 剑指offer:两个链表的第一个公共结点
- [剑指offer]两个链表的第一个公共结点
- 剑指offer---两个链表的第一个公共结点
- LightOJ 1064 Throwing Dice 概率DP
- Remove Duplicates from Sorted List II leetcode
- dojo入门介绍(一)
- System之Dependability
- 中国联通笔试经过
- 【剑指Offer面试编程题】题目1505:两个链表的第一个公共结点--九度OJ
- ios地图定位
- tiny6410按键驱动(四)---poll机制
- javascript复习笔记(一)js基础,基本语法,数据类型,控制流程
- [Machine Learning] RBM Brief Introduction
- Android开发学习笔记一:Android启动界面的简单实现
- struts2中的if标签判断
- UVA - 591 Box of Bricks (水题)
- android handler计时器 Timer+handler