我正在查看问题Link,它告诉我们解决方案的空间复杂性是O(1)(通过Max阅读答案)。我怀疑空间复杂性是算法所需的空间,我已经正确理解并且认为它绝对是O(n),其中n是链表的大小。任何人都可以说这个答案是错误的,或者我在理解上犯了错误吗?
答案 0 :(得分:1)
Max的链接here中的答案摘要显然是错误的。 如果目标是复制一些可变数量的数据(在这种情况下是链表),O(1)空间复杂度是不可能的。
这可以在算法的描述中看到:
创建节点1的副本并将其插入节点1和节点1之间。节点2 原始链接列表,创建2的副本并将其插入2& 3 ..以这种方式继续,在第N个节点后添加N的副本 块引用
这里,回答者刚刚添加了“N”个节点,因此它至少是O(n)复杂度(事实上,列出的算法的空间复杂度是 O(n))。