双链表中,在p所指结点的前后插入新结点的时间复杂度不一样吗?
我看在p之后插入是On(这是书上的算法,已理解这个),但是在p之前插入是O1(测试,不理解),为什么呀这是什么原因
书上内容如下
p之后为啥要O(n)呢?
p->next->prev = q;
q->next = p->next;
q->prev = p;
p->next = q;
这不就行了么
后插需要遍历链表
如果是循环双链表,则时间复杂度一样
你的关注点不应该在前后
到底是已知p节点的指针还是p节点的值那是完全不一样的
如果你已经得到了p的指针,不管是前还是后肯定都是O(1)呀
而如果你只知道p的值而不知道它在哪,不得遍历吗
-=-=-=
如果不是双链表而是链表,那前后就更不一样了
如果已知p的指针,往后插就直接next,而往前插需要从头遍历