LeetCode刷题记录15——21. Merge Two Sorted Lists(easy)
目录
LeetCode刷题记录15——21. Merge Two Sorted Lists(easy)
前言
数据结构的内容很细,需要翻书阅读。
题目
今天的题目是关于链表的,给定两个链表,然后合并这两个链表,要求从小到大。
语言
C++
思路
其实这种合并两个链表的在书上(数据结构第五版,李春葆,68页)就有详细的案例,采用的是二路合并法。
源码
class Solution {
public:
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
ListNode* head = NULL;
if(l1 == NULL)
return l2;
if(l2 == NULL)
return l1;
if(l1->val > l2->val){
head = l2;
l2 = l2->next;
}
else{
head = l1;
l1 = l1->next;
}
ListNode* p = head;
while(l1 && l2){
if(l1->val > l2->val){
p->next = l2;
l2 = l2->next;
}
else{
p->next = l1;
l1 = l1->next;
}
p = p->next;
}
p->next = l1 ? l1 : l2;
return head;
}
};
后记
每日一刷再忙也得坚持,相信会有收获的。