21. Merge Two Sorted Lists

Problem:

Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.

Example:

Input: 1->2->4, 1->3->4
Output: 1->1->2->3->4->4

思路

按照归并排序的思路,归并为一个链表,然后将归并完剩下的链表链接到归并的链表上。

Solution (C++):

ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
    typedef ListNode* L;
    if (!l1)  return l2;
    if (!l2)  return l1;
    ListNode l(0);
    L l3 = &l, p = &l;

    while (l1 && l2) {
        if (l1->val <= l2->val) {
            p->next = l1;
            l1 = l1->next;
            p = p->next;
        } else {
            p->next = l2;
            l2 = l2->next;
            p = p->next;
        }

    }
    while (l2) {
        p->next = l2;
        l2 = l2->next;
        p = p->next;
    } 
    while (l1) {
        p->next = l1;
        l1 = l1->next;
        p = p->next;
    }

    return l3->next;
}

性能

Runtime: 12 ms  Memory Usage: 7.2 MB

思路

Solution (C++):


性能

Runtime: ms  Memory Usage: MB

原文链接: https://www.cnblogs.com/dysjtu1995/p/12570389.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    21. Merge Two Sorted Lists

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/337757

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月1日 下午11:17
下一篇 2023年3月1日 下午11:17

相关推荐