第 1 题
数据结构已知两个长度分别为 和 的升序链表, 若将它们合并为一个长度为 的降序链表, 则最坏情况下的时间复杂度是 ( )。
A.
B.
C.
D.
查看答案与解析
参考答案:D
答案:D。
**思路:**两个原链表已经升序,可以各用一个指针指向尚未处理的首结点。每次取出两指针中较小的结点,用头插法放入结果链表;取出的值越来越大,放在表头后恰好得到降序。某表用完后,继续把另一表剩余结点依次头插。
每个结点只被取出、改链一次,时间为 。令 ,有 ,所以也可写成 。A 的 忽略了可能更长的 m 表;B 的乘积没有必要;C 只计算较短表,遗漏剩余结点;D 正确。反转输出顺序改变的是插入位置,不会使合并变成乘积时间。