这道题目是要求合并两个有序链表,思路是一次比较两个链表的元素,插入到新的链表中,需要注意的是三个指针的一些细节问题,截至条件是一个链表访问完毕,直接将另一个链表附在新链表后面即可。
实现代码如下:
class Solution {
public:
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
if (l1 == NULL)return l2;
if (l2 == NULL)return l1;
ListNode *res=new ListNode(0);
ListNode* p3 = res;
ListNode* p1 = l1;
ListNode* p2 = l2;
while (p1&&p2){
if (p1->val <= p2->val)
{
p3->next = p1;
p1 = p1->next;
}
else
{
p3->next = p2;
p2 = p2->next;
}
p3 = p3->next;
}
if (p1)p3->next = p1;
if (p2)p3->next= p2;
return res->next;
}
};