/**
* struct ListNode {
* int val;
* struct ListNode *next;
* ListNode(int x) : val(x), next(nullptr) {}
* };
*/
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param pHead1 ListNode类
* @param pHead2 ListNode类
* @return ListNode类
*/
multiset<int> st;
ListNode* Merge(ListNode* pHead1, ListNode* pHead2) {
// write code here
if(pHead1==nullptr)return pHead2;
if(pHead2==nullptr)return pHead1;
auto p=pHead1;
while(p!=nullptr){
st.insert(p->val);
p=p->next;
}
p=pHead2;
while(p!=nullptr){
st.insert(p->val);
p=p->next;
}
auto head=new ListNode(*st.begin());
p=head;
for(auto i=++st.begin();i!=st.end();i++){
p->next=new ListNode(*i);
p=p->next;
}
return head;
}
};