我现在对此非常恼火。我正在为大学学习合并排序,并且正在学习这个 merge sort我在网上找到的。但是,我似乎没有得到重复项,我想要重复项。它的这一点如下,但我已经评论了这一点和东西,它使排序无法正常工作。有什么办法可以保留拷贝吗?如果您能保持简单的答案,我将不胜感激。谢谢
else
{
// Both are equal.
// Arbitraritly chose to add one of them and make
// sure you skip both!
if(c == NULL)
{
c = a;
}
else
{
c->next = a;
c = c->next;
}
a = a->next;
b = b->next;
}
最佳答案
我认为线索在代码的注释中:“确保跳过这两个”。通过递增两个 列表指针,您向输出添加了一个元素,但跳过了两个 输入元素。所以只增加一个指针。然后,另一个元素将被移动到下一次迭代的输出列表中。
关于c++ - 允许在单链表 C++ 的合并排序中重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5851732/