输入两个链表,并将它们的值按照递增的顺序合并成一个新的链表。
题目要求如下:
我们可以创建两个新的链表,其中一个作为中间变量来存储合并后的链表,另一个链表记录中间链表并作为返回值返回。
代码如下:
/**
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param pHead1 ListNode类
* @param pHead2 ListNode类
* @return ListNode类
*/
struct ListNode* Merge(struct ListNode* pHead1, struct ListNode* pHead2 )
{
// write code here
struct ListNode* p=(struct ListNode*)malloc(sizeof(struct ListNode));
struct ListNode* pHead=p;
if(pHead1==NULL&&pHead2==NULL)
{
return pHead1;
}
else if(pHead1==NULL&&pHead2!=NULL)
{
return pHead2;
}
else if(pHead1!=NULL&&pHead2==NULL)
{
return pHead1;
}
while(pHead1!=NULL&&pHead2!=NULL)
{
if(pHead1->val<pHead2->val)
{
p->next=pHead1;
p=p->next;
pHead1=pHead1->next;
}
else
{
p->next=pHead2;
p=p->next;
pHead2=pHead2->next;
}
}
p->next=pHead1==NULL?pHead2:pHead1;
return pHead->next;
}
标签:NULL,ListNode,struct,合并,next,链表,pHead1,pHead2,排序
From: https://blog.csdn.net/2401_86655821/article/details/142964754