两个升序链表合并为降序链表

---

两个升序链表合并为降序链表

原文:https://blog.csdn.net/calculate23/article/details/97490628

image-20210405163114682

---注意算法中单次比较中大的一方下标不变,以此实现两两比较---

看了原文解释后个人理解如下,问题的求解无非两步:

求时间复杂度的步骤:

  1. 考虑最坏情况下的执行次数,例如

    l1: 1 3 5 7 9 (m=5)

    l2: 2 4 6 (n=3)

    数字穿插在两个链表中,需要比较m+n-1次

    (第一次:1和2比,1按头插法插入链表l3,继续;

    ​ 第二次:2和3比,2插入l3,以此类推...

    ​ 当链表l2走完后l1中剩余的7,9直接插入l3)

  2. 根据此执行次数得到对应的时间复杂度

    注意:时间复杂度不等于具体的执行步数,其作用是用来反映执行时间的数量级

    所以由加法规则可知:

    O(m+n-1)=O(max(m,n))

原文地址:https://www.cnblogs.com/potofsalt/p/14618721.html