假设有一带头结点的循环双链表表示的线性表L=(a1,a2,…,an-1,an)。 设计在时间和空间上都尽可能高效的算法,将线性表L改造成L=(a1,a3,…,an,…,a4,a2)。要求: 说明你所设计算法的时间复杂度与空间复杂度。

admin2017-11-20  32

问题 假设有一带头结点的循环双链表表示的线性表L=(a1,a2,…,an-1,an)。
    设计在时间和空间上都尽可能高效的算法,将线性表L改造成L=(a1,a3,…,an,…,a4,a2)。要求:
说明你所设计算法的时间复杂度与空间复杂度。

选项

答案空间复杂度分析:除去链表本身的空间外,额外的空间消耗为O(1)。其实本题可以看成是原来链表的重新组合,并没有开辟新的空间。 时间复杂度分析:整个过程相当于把链表遍历了一遍,所以时间复杂度为O(n)。

解析
转载请注明原文地址:https://kaotiyun.com/show/AVRi777K
0

最新回复(0)