一、问题描述
Description: Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.
合并两个有序的链表,返回合并后的链表。
二、解题报告
本题也很简单,按顺序不断取下 两个链表表头中 较小的结点放入新的链表中。然后看哪个链表还有剩余,将剩下的部分加到新链表的后面。
代码如下:
class Solution {
public:
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
ListNode* head = new ListNode(0);
ListNode* p = head;
while(l1!=NULL && l2!=NULL) {
if(l1->val < l2->val) {
p->next = l1;
l1 = l1->next;
}
else {
p->next = l2;
l2 = l2->next;
}
p = p->next;
p->next = NULL;
}
if(l1!=NULL)
p->next = l1;
if(l2!=NULL)
p->next = l2;
return head->next;
}
};
LeetCode答案源代码:https://github.com/SongLee24/LeetCode