zoukankan      html  css  js  c++  java
  • 九度OJ 1505 两个链表的第一个公共结点 【数据结构】

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

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

  • 相关阅读:
    面试
    二叉树- 二叉树直径
    排序算法
    JAVA编程
    JAVA编程
    JAVA中break和continue的区别
    HTTP的序列化和反序列化
    PL/SQL基础
    G. Game Design
    hdu 6703 array
  • 原文地址:https://www.cnblogs.com/liushaobo/p/4373753.html
Copyright © 2011-2022 走看看