为什么引入双链表?单链表的结点中只有一个指向其后继的指针,使得单链表要访问某个结点的前驱结点时,只能从头开始遍历,访问后驱结点的复杂度为O(1),访问前驱结点的复杂度为O(n)。为了克服上述缺点,引入了双链表。 单向链表查找的方向只能是一个方向,而双向链表可以向前或者向后查找;单链表如果想要实现删除操作,需要找到待删除节点的前一个节点。而双向链表可以实现自我删除。 ![[104421_43592.png]] ![[104543_51020.png]]