本人只是一个代码小白,大一提前学习了数据结构与算法入门,只是发博客来记录自己的成长,所以各位大佬看不下去绕开就行了,如果我的文章对你有帮助的话,我将万分荣幸。
一开始学数据结构与算法的时候我发现了这样一个问题,链表如何合并呢?
毕竟如果要对多个链表进行排序的话先合并链表应该会比直接排序方便许多
现在假设我们有两个链表a,b,其实只需要让a的尾部本来指向NULL的指针指向b的第一个元素
先贴一下代码
LinkList* combine(LinkList* a, LinkList* b) {
LinkList* c = (LinkList*)malloc(sizeof(LinkList));//创建一个新链表
c = a;
while (a->next != NULL) {
a = a->next;
}//因为链表只能从头开始,所以先找到a的尾部
a->next = b->next;//让a的尾部指向b的第一个元素(注意这里不是指向b的head)
return c;//这样我们的新链表就创造出来了
}
注释贴的很详细,就不再赘述了,希望对大家有一点点帮助