合并两个有序链表OJ
文章目录
- 合并两个有序链表OJ
- 一、题目及要求
- 二、思路分析
- 三、代码实现
一、题目及要求
二、思路分析
其次,题目里说了新链表是通过拼接原来的结点形成的,所以说我们不需要开辟新的空间。
三、代码实现
if (list1 == NULL)
{
return list2;
}
if (list2 == NULL)
{
return list1;
}
struct ListNode* newlist = NULL;
struct ListNode* newhead = newlist;//需要返回头,所以说必须创建一个临时的存储
while (list1 && list2)
{
if (list1->val < list2->val)
{
if (newlist == NULL)
{
newhead = newlist = list1;
}
else
{
newlist->next = list1;
newlist = newlist->next;
}
list1 = list1->next;
}
else
{
if (newlist == NULL)
{
newhead = newlist = list2;
}
else
{
newlist->next = list2;
newlist = newlist->next;
}
list2 = list2->next;
}
}
if (list1)
{
newlist->next = list1;
}
if (list2)
{
newlist->next = list2;//直接接上就行了
}
return newhead;