- 记得刚开始的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; } };