题意
输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。
样例
输入:1->3->5 , 2->4->5
输出:1->2->3->4->5->5
思路定义一个虚拟头节点进行遍历
class Solution {
public:
ListNode* merge(ListNode* l1, ListNode* l2) {
auto dummpy=new ListNode(-1);
//dummpy=l1;
ListNode* cur=dummpy;
ListNode* p1=NULL;
ListNode* p2=NULL;
p1=l1;
p2=l2;
while(p1&&p2)
{
if(p1->val<p2->val)
{
cur->next=p1;
p1=p1->next;
}
else
{
cur->next=p2;
p2=p2->next;
}
cur=cur->next;
}
/*while(!p2&&p1)
{
cur->next=p1;
p1=p1->next;
cur=cur->next;
}
while(!p1&&p2)
{
cur->next=p2;
p2=p2->next;
cur=cur->next;
}
cur->next=NULL;*/
cur->next=p1!=nullptr?p1:p2;
return dummpy->next;
}
};