我正在查看问题链接,它告诉解决方案的空间复杂度为 O(1((阅读 Max 的答案(。我怀疑空间复杂性是算法所需的空间,我已经正确理解了这一点,并认为它绝对是 O(n(,其中 n 是链表的大小。谁能说出这个答案是错误的还是我在理解上犯了错误?
Max 链接中的答案摘要显然是错误的。 根据定义,O(1( 空间复杂性是不可能的,如果目标是复制一些可变数量的数据(在本例中为链表(。
这在算法的描述中可见:
创建节点 1的副本,并将其插入节点 1 和节点 2 之间 原始链表,创建 2 的副本并将其插入 2 和 3.. 以这种方式继续,在第 N 个节点后添加 N 的副本 块引用
在这里,应答者刚刚添加了"N"个节点,所以它至少是O(n(的复杂度(事实上,列出的算法的空间复杂度是O(n((。