You can easily merge two lists O (1) times using either a single linked list or a doubly linked list, provided that you have a pointer to the last node in at least one of the lists. (And, of course, the pointers to the list are headed.)
You cannot do this with an array implementation because you have to allocate more memory and copy a new resulting list into it. Even if memory is already allocated in the array, you still have to copy all the new elements. Thus, it is either O (m + n) or O (n) (where m and n are the lengths of individual lists, respectively).
With a circularly linked list, you can easily combine them O (1) times. It is just a matter of breaking the links in both lists and then combining them. This suggests, of course, that the order of the items is not particularly important.
source share