题目描述
将两个有序的链表合并为一个新链表,要求新的链表是通过拼接两个链表的节点来生成的,且合并后新链表依然有序。
解法
ListNode* mergeTwoLists(ListNode* a, ListNode* b) {
if ((!a) || (!b)) return a ? a : b;
ListNode dummy(0);
ListNode *tail = &dummy, *aPtr = a, *bPtr = b;
while (aPtr && bPtr) {
if (aPtr->val < bPtr->val) {
tail->next = aPtr; aPtr = aPtr->next;
} else {
tail->next = bPtr; bPtr = bPtr->next;
}
tail = tail->next;
}
tail->next = (aPtr ? aPtr : bPtr);
return dummy.next;
}


京公网安备 11010502036488号