/从链表的头结点开始,若phead1>phead2,那么合并后链表的头结点是phead1.反之,则是phead2
//剩余链表仍然有序,合并步骤同上一步一样,可采用递归的方法解决
//边界条件 phead1为NULL,phead2为NULL
#include<iostream>
using namespace std;
struct ListNode
{
int value;
ListNode* next;
};
ListNode* Merge(ListNode* p1, ListNode* p2)
{
if (p1 == NULL)
return p2;
else if (p2 == NULL)
return p1;
ListNode * pMergeHead = NULL;
if (p1->value <= p2->value)
{
pMergeHead = p1;
pMergeHead->next = Merge(p1->next, p2);
}
else
{
pMergeHead = p2;
pMergeHead->next = Merge(p1, p2->next);
}
return pMergeHead;
}
合并有序链表
最新推荐文章于 2025-05-07 08:00:00 发布
本文详细介绍了链表合并算法的实现过程,包括递归方法的应用和边界条件的处理,通过实例展示如何高效地将两个有序链表合并为一个有序链表。

5502

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



