leetcode-合并两个排序的链表-66
Posted 天津 唐秙
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode-合并两个排序的链表-66相关的知识,希望对你有一定的参考价值。
题目要求
输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。
思路
如果两个链表有一个为空,返回另一个,均不为空,我们创建一个头结点,将两个链表中的值进行比较,将较小的节点放到头结点后面,直到两个链表中有一个被链接完,将另一个链表的剩余节点也链接到后面,头结点向后移一个,把头节点释放。
代码实现
class Solution {
public:
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
if (l1 == NULL)
return l2;
if (l2 == NULL)
return l1;
ListNode* cur1 = l1;
ListNode* cur2 = l2;
ListNode* head = new ListNode();
ListNode* cur = head;
while (cur1 != NULL && cur2 != NULL)
{
if (cur1 != NULL && cur2 != NULL && cur1->val > cur2->val)
{
cur->next = cur2;
cur2 = cur2->next;
}
else// if (cur1 != NULL && cur2 != NULL && cur1->val < cur2->val)
{
cur->next = cur1;
cur1 = cur1->next;
}
cur = cur->next;
}
if (cur1 != NULL)
{
cur->next = cur1;
}
if (cur2 != NULL)
{
cur->next = cur2;
}
cur = head->next;
delete head;
return cur;
}
};
以上是关于leetcode-合并两个排序的链表-66的主要内容,如果未能解决你的问题,请参考以下文章
[LeetCode]剑指 Offer 25. 合并两个排序的链表
[LeetCode]剑指 Offer 25. 合并两个排序的链表
剑指 Offer 25. 合并两个排序的链表(leetcode每日打卡)