0001 template <typename T> LNP<T> List<T>::join(List<T>& L) { //L作为后缀接入当前列表 0002 if (L._size < 1) return nullptr; 0003 LNP<T> first = L.head->succ; 0004 tail->pred->succ = L.head->succ; 0005 L.head->succ->pred = tail->pred; 0006 L.tail->pred->succ = tail; 0007 tail->pred = L.tail->pred; 0008 _size += L._size; 0009 L.head->succ = L.tail; 0010 L.tail->pred = L.head; 0011 L._size = 0; 0012 return first; 0013 } //O(1)