有序链表合并
两个有序的链表,要求将其合并为一个链表,并且该链表保持有序!!
这里所讲的是链表升序!
首先,我们要构造两张按照升序排列好的链表。
构造链表:我们的方法有尾插,头插,大家可以click链接来查看:
https://blog.youkuaiyun.com/code_zx/article/details/80024207
这里我们的实验数据,以及思路如图所示!!
实验数据:
链表1:1, 3, 5, 7
链表2:1, 2, 4 ,5

关于合并的部分代码!
// 合并两个有序单链表,合并后依然有序 (升序)
PNode MergeSList(PNode pHead1, PNode pHead2)
{
if (pHead1 == NULL && pHead2 == NULL)
{
return NULL;
}
PNode pNewHead = NULL;
PNode pCur1 = pHead1;
PNode pCur2 = pHead2;
PNode pCur = NULL;
if (pCur1->_data > pCur2->_data) //选择头结点
{
pNewHead = pCur2;
pCur2 = pCur2->_pNext;
}
else
{
pNewHead = pCur1;
pCur1 = pCur1->_pNe

本文介绍如何将两个升序排列的链表合并成一个有序链表。首先讨论了链表的构造方法,然后提供了合并链表的C语言代码,指出代码中可能的优化点,如封装操作。此外,提出了利用数组进行排序后再转回链表的思路。鼓励读者实践和探索数据结构的相关知识。
最低0.47元/天 解锁文章
719

被折叠的 条评论
为什么被折叠?



