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

时间:2015-03-02 14:25:08

标签: 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))

1 个答案:

答案 0 :(得分:4)

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

Cost = O(min(m, n))