对于两个已排序(非递减)的单链表LA和LB,分别存储线性表A和B,要将它们归并为一个新的单链表LC,存储线性表C,并保持C的非递减排序。若仅考虑链表的结点存储结构,不考虑其他额外的数据结构,以下哪种方案在**一般情况下**,对链表结点内存的利用率**最高**且能保证算法的**最低**时间复杂度?

答案解析

选项A:需要创建新的节点来构建LC,导致存储开销,而且时间复杂度为O(m+n)。选项B:直接合并后排序,虽然可能在某些特定情况下较快,但整体时间复杂度会变为O(nlogn)或更高,并且并没有直接利用原始结点,存储利用率较低。选项C:直接利用了LA和LB的现有结点,并通过调整指针进行归并,避免了额外节点的创建,存储利用率较高,同时维持了O(m+n)的时间复杂度。选项D:不仅创建新链表,还复制了数据,之后还需排序,最耗费空间,且时间复杂度最高。这里考察的是利用原有节点完成归并操作,并且不增加额外的时间复杂度,选项C为最优。
正确答案:C
随机推荐
开始刷题