/* 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) return pHead2; if(!pHead2) return pHead1; auto t1 = pHead1, t2 = pHead2; ListNode* new_head = new ListNode(-1); auto ans = new_head; while(t1 && t2) { if(t1 -> val >= t2 -> val) { new_head = new_head -> next = t2; t2 = t2 -> next; } else { new_head = new_head -> next = t1; t1 = t1 -> next; } } if(!t1) { new_head -> next = t2; } if(!t2) { new_head -> next = t1; } return ans -> next; } };