题目描述
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
/* 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; if(!pHead1) return pHead2; if(!pHead2) return pHead1; ListNode* head=NULL; ListNode* p1=pHead1; ListNode* p2=pHead2; ListNode* p=NULL; while(p1 && p2) { ListNode* min; if(p1->val < p2->val) { min=p1; p1=p1->next; } else { min=p2; p2=p2->next; } min->next=NULL; if(p==NULL) { p=min; head=p; } else { p->next=min; p=min; } } if(p1) { p->next=p1; } if(p2) { p->next=p2; } return head; } };