首页 > 试题广场 >

打印两个升序链表的公共部分

[编程题]打印两个升序链表的公共部分
  • 热度指数:5023 时间限制:C/C++ 4秒,其他语言8秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定两个升序链表,打印两个升序链表的公共部分。

输入描述:
第一个链表的长度为 n。

第二个链表的长度为 m。

链表结点的值为 val。


输出描述:
输出一行整数表示两个升序链表的公共部分的值 (按升序输出)。
示例1

输入

4
1 2 3 4
5
1 2 3 5 6

输出

1 2 3

备注:


n = int(input())
ls1 = list(map(int,input().split()))
m = int(input())
ls2 = list(map(int,input().split()))
i,j = 0,0
ls = []


while i < n and j < m:
    if ls1[i] == ls2[j]:
        ls.append(ls1[i])
        i += 1
        j += 1
    else:
        if ls1[i] < ls2[j]:
            i += 1
        else:
            j += 1
        
ls.sort()
print(' '.join(map(str,ls)))

发表于 2021-09-07 09:12:15 回复(0)