思路:
将两个链表的值存入数组中再用stl里的sort方法排序然后建链表赋值返回
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* merge(ListNode* l1, ListNode* l2) {
int length = 0;
int a[10000];
ListNode *q = l1;
while(q != NULL) a[length++] = q->val,q = q->next;
q = l2;
while(q != NULL) a[length++] = q->val,q = q->next;
sort(a,a + length);
if (!length) return NULL;
ListNode *node;
node = new ListNode(a[0]); // 使用构造函数初始化 node
ListNode *p = node;
for (int i = 1; i < length; i++) {
ListNode *t = new ListNode(a[i]); // 使用构造函数初始化 t
p->next = t; // 将 t 链接到 p 的 next
p = t; // 更新 p 为 t
}
return node;
}
};