ListNode* mergeTwoLists(ListNode* l1, ListNode* l2){
// 首先生成空链表
ListNode dummy;
ListNode* tail = &dummy;
// 遍历两个有序链表,每次只取一个结点append到新链表里面
while (l1 || l2) {
// 如果l2链表为空,或者l1链表里面的值更小,那么取l1结点追加到
// 新链表尾部
if (!l2 || l1 && l1->val < l2->val) {
auto back = l1->next;
tail->next = l1;
tail = tail->next;
l1 = back;
} else {
其他情况,则把l2结点添加到新链表尾部
auto back = l2->next;
tail->next = l2;
tail = tail->next;
l2 = back;
}
}
// 注意:这里一定要记得把tail.next设置为空。
// 虽然这个题可能并不需要,但是应该养成收尾的好习惯
tail->next = nullptr;
// 返回dummy.next, 不要返回dummy!!
return dummy.next;
}
06-08
2999