方法一:创建一个新链表的头节点,设置两个指针,分别指向两条链表的头节点,然后遍历比大小,通过新链表的头节点将其串联起来。
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* Merge(ListNode* pHead1, ListNode* pHead2) {
ListNode*big=new ListNode(0);
ListNode*p0=big;
ListNode*p1= pHead1;
ListNode*p2= pHead2;
while(p1!=NULL&&p2!=NULL)
{
if(p1->val>p2->val)
{
p0->next=p2;
p2=p2->next;
}
else {
p0->next=p1;
p1=p1->next;
}
p0=p0->next;
}
if(p1!=NULL)
{
p0->next=p1;
}
else {
p0->next=p2;
}
return big->next;
}
};