Как плести через две цепи - PullRequest
0 голосов
/ 27 января 2019

У меня есть две цепи, где, скажем, цепь 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_--;

}

...