困惑于以下算法的空间复杂性

时间:2018-06-08 20:35:48

标签: algorithm linked-list space-complexity

我正在查看问题Link,它告诉我们解决方案的空间复杂性是O(1)(通过Max阅读答案)。我怀疑空间复杂性是算法所需的空间,我已经正确理解并且认为它绝对是O(n),其中n是链表的大小。任何人都可以说这个答案是错误的,或者我在理解上犯了错误吗?

1 个答案:

答案 0 :(得分:1)

Max的链接here中的答案摘要显然是错误的。 如果目标是复制一些可变数量的数据(在这种情况下是链表),O(1)空间复杂度是不可能的。

这可以在算法的描述中看到:

  

创建节点1的副本并将其插入节点1和节点1之间。节点2   原始链接列表,创建2的副本并将其插入2&   3 ..以这种方式继续,在第N个节点后添加N的副本   块引用

这里,回答者刚刚添加了“N”个节点,因此它至少是O(n)复杂度(事实上,列出的算法的空间复杂度 O(n))。