了解链表的复杂性
以下是链表操作的最佳、最差和平均复杂度:
操作 | 时间复杂度:最坏情况 | 时间复杂度:最好情况 |
---|---|---|
Insert at beginning or end |
\$O(1)\$ |
\$O(1)\$ |
Delete at beginning or end |
\$O(1)\$ |
\$O(1)\$ |
Search |
\$O(n)\$ |
\$O(n)\$ |
Access |
\$O(n)\$ |
\$O(n)\$ |
我们可以通过跟踪最后一个节点,在链表末尾实现 \$O(1)\$ 的插入复杂度,就像我们在示例中对第一个节点所做的那样。这将有助于我们直接跳转到链表的最后一个节点,而无需任何迭代。