algorithm - 如何在两个链表中找到最新的相等元素?

标签 algorithm search linked-list tail

有两个linked lists .他们有共同的尾部。我想找到最新的元素,这在两个列表中都是相同的。

例如,

List1 是 10->4->5->2->9->53->64->345-> 23

List2 是 10->4->5->2->8->53->64->345-> 23->43->53

我要找2个。

我们可以在 O(n) 中迭代列表。

有没有比 O(min(n, m)) 更好的查找所需元素的方法?

最佳答案

node1 = list1head
node2 = list2head
ans = {error}
while(node1 && node2 && node1.data == node2.data)
  ans = node1.data
  node1 = node1.next
  node2 = node2.next
end while
return ans

成本 = O(min(m, n))

关于algorithm - 如何在两个链表中找到最新的相等元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28812153/

相关文章:

c# - 反向抛光表示法 C# 无法正常工作

algorithm - 井字游戏策略 - 60 年代的 MiniVac 601 逻辑

algorithm - 矩阵置换的多项式算法

java - 使用 Lucene 搜索多个字段

python - 用另一个数据帧的值替换一个数据帧中的列值

javascript - 什么是计算加权和的有效算法?

mysql - 从多个mysql数据库中搜索一个字段?

c++ - 无法将术语添加到列出的列表类

c++ - 在创建此函数以从 C++ 中的单链表搜索元素时,我在哪里犯了错误?

c++ - 正确管理内存——创建包含指针的双向链表