加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

九度OJ 1505 两个链表的第一个公共结点 【数据结构】

发布时间:2020-12-15 06:30:29 所属栏目:安全 来源:网络整理
导读:题目地址:http://ac.jobdu.com/problem.php?pid=1505 题目描述: 输入两个链表,找出它们的第一个公共结点。 输入: 输入可能包含多个测试样例。 对于每个测试案例,输入的第一行为两个整数m和n(1=m,n=1000):代表将要输入的两个链表的元素的个数。 接下来

题目地址: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("%dn",list1[index1]);
        else
            printf("My Godn");
    }
 
    return 0;
}

参考资料: 何海涛 -- 程序员面试题精选100题(35)-两链表的第一个公共结点[数据结构]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读