两个链表的第一个公共结点

原创 2013年12月03日 08:43:00
题目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
****************************************************************/


相关文章推荐

题目:输入两个链表,找出它们的第一个公共结点

题目:输入两个链表,找出它们的第一个公共结点。链表的定义如下: struct ListNode {      int m_nValue;      ListNode* m_pNext; };...

算法题5 找出两个链表的第一个公共结点

题目:两个单向链表,找出它们的第一个公共结点。 链表的结点定义为: struct ListNode {       int       m_nKey;       ListNode*   m...
  • wcyoot
  • wcyoot
  • 2011年05月17日 11:21
  • 12104

【剑指Offer面试编程题】题目1505:两个链表的第一个公共结点--九度OJ

本题应该非常经典的题目了,但这种题目我们往往有时候需要注意来输入的不止两个链表的情况,但本题目中已经很清晰的说明了只有两个链表。另外,既然是单链表,就不存在有一个节点具有多个指针指向其他节点。 ...

[剑指offer学习心得]之:两个链表的第一个公共结点

题目:输入两个链表,找出它们的第一个公共结点。看到这道题,第一个想到的自然是暴力法:第一链表上顺序遍历每个结点,每遍历到一个结点,在第二个链表上顺序遍历每个结点。如果在第二个链表上有一个结点和第一个链...

电话面试:求两个链表的第一个公共结点

求两个链表的第一个公共结点 题目另外一种说法也可以为两个链表第一个交点。首先确定相交在链表上的含义,链表相交意味着某个节点到链表尾都是相同。其实这个问题可以联想到路程相遇问题,如何使得两个链表同时到...
  • huruzun
  • huruzun
  • 2014年03月30日 21:49
  • 656

算法-寻找两个链表的第一个公共结点

题目: 输入两个链表,找到他们的第一个公共结点,链表结点定义如下:struct ListNode { int value; ListNode *next; };解题思路: 首先我们需要想...

九度 题目1505:两个链表的第一个公共结点

题目来源:http://ac.jobdu.com/problem.php?pid=1505

剑指Offer:面试题37 两个链表的第一个公共结点

/* 两个链表的第一个公共结点: 输入两个链表,找出它们的第一个公共结点。、 分析: 这是数据结构的一道题目。 设长链表长度为L=5, 短链表长度为S = 3, 那么先让长链表走L-S= 2步, 那么...

找出两个链表的第一个公共结点

题目:两个单向链表,找出它们的第一个公共结点。 链表的结点定义为: struct ListNode { int m_nKey; ListNode* ...

剑指offer-面试题37-两个链表的第一个公共结点

package case37_FindFirstCommonNode; import java.util.Stack; /** * 题目:输入两个链表,找出他们的第一个公共结点。 * * ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:两个链表的第一个公共结点
举报原因:
原因补充:

(最多只允许输入30个字)