- 记得刚开始的dummy node,同时申请一个指针指向这个dummynode
- 初始化两个指针指向两个头节点,这都是一般的操作。
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* Merge(ListNode* pHead1, ListNode* pHead2) {
if(!pHead1&&!pHead2) return NULL;
ListNode* dummy = new ListNode(-1), *p = dummy;
ListNode* p1 = pHead1;
ListNode* p2 = pHead2;
while(p1&&p2){
if(p1->val>p2->val){
p->next = p2;
p2 = p2->next;
}else{
p->next = p1;
p1= p1->next;
}
p = p->next;
}
if(p1){
p->next = p1;
}
if(p2){
p->next = p2;
}
return dummy->next;
}
};