我完全理解如何将列表合并并排序到另一个列表中。但是,我无法编译将链表合并到自身的简单概念。
说" A"被合并到"这个"名单。 "列表"本身。 所以List1需要合并到自己
我假设这样的事情应该有用......
void LinkedList :: merge(const LinkedList& l){
l.merge(l)
}
这是我现在的代码..
// pre: none
// post: list l is merged to self.
void LinkedList :: merge(const LinkedList& l){
l.merge(l)
}
void LinkedList :: appendNode(float val){
Node *newNode, *nodePtr;
newNode = new Node;
newNode->value = val;
newNode->next = NULL;
// If there are no nodes in the list
// make newNode the first node
if (!head){
head = newNode;
}
else // Otherwise, insert newNode at end
{
// Initialize nodePtr to head of list
nodePtr = head;
// Find the last node in the list
while (nodePtr -> next){
nodePtr = nodePtr -> next;
}
// Insert newNode as the last node
nodePtr -> next = newNode;
}
}
// pre: none
//post: list has been deallocated
LinkedList :: ~LinkedList()
{
Node *nodePtr, *nextNode;
nodePtr = head;
while (nodePtr != NULL)
{
nextNode = nodePtr->next;
delete nodePtr;
nodePtr = nextNode;
}
}
// pre: none
// post: list values are printed to console.
void LinkedList :: displayList(){
Node *nodePtr;
nodePtr = head;
while (nodePtr)
{
cout << nodePtr->value << endl;
nodePtr = nodePtr->next;
}
}