У меня есть две цепи, где, скажем, цепь 1 имеет головку, 1, 2, 3, 4, а цепь 2 имеет головку, 5, 6, 7, 8. При плетении из нее должна получиться цепь 1 с головой, 1, 5, 2, 6, 3, 7, 4, 8. Моя функция в данный момент работает, но только для первых 2 и останавливается.
void Chain::weave(Chain & other) {
while (length_ > 0 && other.length_ > -1){
Node * current = head_->next;
Node * otherNode = other.head_->next;
Node * currentNext = current->next;
Node * currentPrev = current->prev;
Node * otherNext = otherNode->next;
Node * otherPrev = otherNode->prev;
if (current != NULL && otherNode != NULL){
current->next = otherNode;
currentNext = otherNode->next;
currentNext->next = otherNext;
length_++;
other.length_--;
}