我一直在挣扎几个小时,结束了这个问题。我的目标是仅使用指针对链表进行排序(我不能将链表放入vec或数组中,然后进行排序)。我得到了指向列表头节点的指针。我可以调用指针的唯一方法是head-> next(next node)和head-> key(存储在节点中的int值,用于比较)。我一直在过度使用我的白板,并尝试几乎所有我能想到的东西。排序链接列表C++与指针
Node* sort_list(Node* head)
{
Node* tempNode = NULL;
Node* tempHead = head;
Node* tempNext = head->next;
while(tempNext!=NULL) {
if(tempHead->key > tempNext->key) {
tempNode = tempHead;
tempHead = tempNext;
tempNode->next = tempNode->next->next;
tempHead->next = tempNode;
tempNext = tempHead->next;
print_list(tempHead);
}
else {
tempHead = tempHead->next;
tempNext = tempNext->next;
}
}
return head;
}
发布您正在尝试修复的代码。我们不介意读者 - 没有看到您尝试过的内容,就没有办法提供帮助。 – Yuushi
你有什么尝试?你在找人为你写代码吗? – edtheprogrammerguy
[code](http://pastebin.com/af3Npif4) 对不起,我发贴时忘了粘贴我的代码。过去5个小时我尝试了很多东西。如果你批评我的代码,那很好,但一般的想法也有帮助。 print_list方法接受一个节点并将其中的节点打印到列表的末尾。 – dclark