为什么链表(单链表)的时间复杂度不是n-1?

Why the time complexity of linked list ( single linked list ) isn't n-1?

我的观点是,当指针在链表中遍历到n-1位置时,他很容易得到nth的值,因为正如我们所知,nth pointer 的地址位于第 n-1 个位置。因此,时间复杂度必须是 n-1 而不是 n.

任何 Big O 表示法总是描述 upper 边界。这意味着虽然 n-1 描述复杂性会更准确,但它仍然包含在 O(n).
中 其次,在描述大 O 复杂性 class 时,任何常数因子 (-1) 都会从等式中减少,因为对于任何体面的大 n,任何常数因子对结果。
与删除 n 的任何常数因子相同。 O(3n+5)O(n).

的复杂性相同 class

这两者的结合是您将复杂性描述为 O(n) 而不是 O(n-1) 的原因,尽管它在技术上可能仍然是正确的并且更准确。