Assuming you're using java.util.LinkedList, there is the LinkedList.listIterator() method that returns a ListIterator:
public ListIterator listIterator(int index)
Returns a list-iterator of the elements in this list (in proper
sequence), starting at the specified position in the list. [...]
The list-iterator is fail-fast: if the list is structurally modified
at any time after the Iterator is created, in any way except through
the list-iterator's own remove or add methods, the list-iterator will
throw a ConcurrentModificationException. [...]
And you can use ListIterator.add() to safely add an item in the middle of the LinkedList:
void add(E e)
Inserts the specified element into the list (optional operation). [...]
For example, say you want to put list2 in the 5th position of the list1, you can do so by doing the following:
LinkedList list1 = ...;
LinkedList list2 = ...;
ListIterator it1 = list1.listIterator(5);
for (Object item : list2) {
it1.add(item);
}