分析
单链表合并的最基本操作,注意最后新链表需要连接上还有剩余元素的链表。
代码
class Solution {
public:
ListNode * mergeTwoLists(ListNode* l1, ListNode* l2) {
ListNode *p = l1, *q = l2, *new_head = new ListNode(-1);
ListNode *t = new_head;
while (p && q) {
int val1 = p->val, val2 = q->val;
ListNode *node = new ListNode(-1);
if (val1 < val2) {
node->val = val1;
p = p->next;
}
else {
node->val = val2;
q = q->next;
}
t->next = node;
t = t->next;
}
if (p) t->next = p;
if (q) t->next = q;
return new_head->next;
}
};