/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { ListNode* ans = new ListNode(0), *cur = ans; while (pHead1 && pHead2) { // 两个链表均不为空,比较大小 if (pHead1->val <= pHead2->val) { cur->next = pHead1; pHead1 = pHead1->next; } else { cur->next = pHead2; pHead2 = pHead2->next; } cur = cur->next; } if (pHead1) { // 第一个链表剩余部分不为空 cur->next = pHead1; } if (pHead2) { // 第二个链表剩余部分不为空 cur->next = pHead2; } return ans->next; } };