See Problem
Given two circular, doubly linked lists, write a function that combines them.
//--- Node for doubly linked list of floats. struct Node { Node* next; // Pointer to next element Node* prev; // Pointer to previous element float data; }; //--- Function Node* splice(Node* p, Node* q) { //... If either is NULL, return other. if (p == NULL) return q; if (q == NULL) return p; //... Link q's Nodes after p. Same order is important. p->next->prev = q->prev; q->prev->next = p->next; p->next = q; q->prev = p; }